zoukankan      html  css  js  c++  java
  • ASP.NET Literal控件用法

    在您要以编程方式设置文本而不添加额外的 HTML 标记时,可以向页面添加 Literal Web 服务器控件。在要向页面动态添加文本而不添加任何不属于该动态文本的元素时,Literal 控件非常有用。例如,您可以使用 Literal 控件来显示从文件或流中读取的 HTML。

    注意 
    如果要显示静态文本,则可以使用 HTML 呈现它;不需要 Literal 控件。只有在需要以编程方式呈现文本时才使用 Literal 控件。


    向 Web 窗体页添加 Literal 控件
    将 <asp:Literal> 元素键入页面。

    下面的示例显示一个简单页,该页在运行时显示标题新闻。该页的主体(包括 Literal 控件)类似于下面的代码:

    <body>
       <form runat="server">
          <h1><asp:Literal id="Headline" runat=server /></h1>
       </form>
    </body>


    或者,将 Mode 属性设置为 Transform、PassThrough 或 Encode。Mode 属性指定控件如何处理您添加到该控件中的标记。

    将代码添加到页面上以在运行时设置控件的 Text 属性。

    下面的示例演示如何以编程方式设置 Literal 控件的文本和编码。该页包含一组单选按钮,允许用户在编码文本和传递文本之间选择。

    注意 
    如果您正将 Text 属性设置为来自不受信任源的文本,则应将控件的 Mode 属性设置为 Encode,这样标记才不会形成可执行标记。

    <%@ Page Language="C#" %>

    <script runat="server">
        protected void Page_Load(object sender ,EventArgs e)
        {
            // Literal1.Text = "This <b>text</b> is inserted dynamically.";

            Literal1.Text = "<script language='javascript'>alert('你中彩了!');<"+"/script>";
            if(radioEncode.Checked == true)
            {
               
                Literal1.Mode = LiteralMode.Encode;
            }
            if(radioPassthrough.Checked == true)
            {
                Literal1.Mode = LiteralMode.PassThrough;
            }
        }
    </script>

    <html>
    <head id="Head1" runat="server">
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <br />
                <asp:RadioButton ID="radioEncode" runat="server" GroupName="LiteralMode" Checked="True"
                    Text="Encode" AutoPostBack="True" />
                <br />
                <asp:RadioButton ID="radioPassthrough" runat="server" GroupName="LiteralMode" Text="PassThrough"
                    AutoPostBack="True" />
                <br />
                <br />
                <asp:Literal ID="Literal1" runat="server"></asp:Literal>&nbsp;</div>
        </form>
    </body>
    </html>

    当你选择PassThrough时跳出窗体,选择Encode时原样输出

    在页上显示静态内容并允许您以编程方式对其进行操作。

    <asp:Literal
          EnableTheming="True|False"
          EnableViewState="True|False"
          ID="string"
          Mode="Transform|PassThrough|Encode"
          OnDataBinding="DataBinding event handler"
          OnDisposed="Disposed event handler"
          OnInit="Init event handler"
          OnLoad="Load event handler"
          OnPreRender="PreRender event handler"
          OnUnload="Unload event handler"
          runat="server"
          SkinID="string"
          Text="string"
          Visible="True|False"
    />
    使用 Literal 控件在 Web 窗体页上显示静态文本。与 Label控件不同的是,Literal 不允许您向其内容应用样式。文本在 Literal 控件中显示之前并非 HTML 编码形式。这使得可以在文本中的 HTML 标记中嵌入脚本。如果控件的值是由用户输入的,请务必要对输入值进行验证以防止出现安全漏洞。 示例下面的示例演示如何使用 Literal 控件显示静态文本。<%@ Page Language="C#" AutoEventWireup="True" %>

    <html>
    <head>

       <script runat="server">

          void ButtonClick(Object sender, EventArgs e)
          {
             Literal1.Text="Welcome to ASP.NET!!";
          }

       </script>

    </head>
    <body>
       <form runat="server">
          <h3>Literal Example</h3>

          <asp:Literal id="Literal1"
               Text="Hello World!!"
               runat="server"/>

          <br><br>

          <asp:Button id="Button1"
               Text="Change Literal Text"
               OnClick="ButtonClick"
               runat="server"/>

       </form>
    </body>
    </html>

  • 相关阅读:
    ZJOI 2019 划水记
    【博弈论】浅谈泛Nim游戏
    HZNU ACM一日游 2019.3.17 【2,4,6-三硝基甲苯(TNT)】
    BZOJ 1008 越狱 组合数学
    BZOJ 1036 树的统计Count 树链剖分模板题
    BZOJ 1012 最大数maxnumber 线段树
    BZOJ 1001 狼抓兔子 平面图的最小割
    SGU---107 水题
    欧拉回路模板
    hdu-3397 Sequence operation 线段树多种标记
  • 原文地址:https://www.cnblogs.com/xfiver/p/1729233.html
Copyright © 2011-2022 走看看