Практическое руководство. Добавление серверных веб-элементов управления Literal на страницу веб-форм
Обновлен: Ноябрь 2007
Серверный веб-элемент управления Literal используется, если требуется задать текст на страницу веб-форм программным способом без лишних тегов HTML. Элемент управления Literal — это удобный способ динамического добавления текста на страницу без добавления элементов, не являющихся частью динамического текста. Например, можно использовать элемент управления Literal для отображения HTML кода, который можно прочитать из файла или из потока.
Примечание. |
---|
Если требуется отображение статического текста, можно использовать HTML без элемента управления Literal. Используйте элемент управления Literal только в том случае, если требуется динамически изменять содержимое в коде приложения. |
Добавление серверного веб-элемента управления Literal на страницу веб-форм
Из вкладки Стандартные панели элементов перетащите на страницу элемент управления Literal.
При необходимости в категории Поведение окна Свойства присвойте свойству Mode значения TransformPassThrough и Encode. Свойство Mode задает способ обработки элементом управления любой разметки, добавляемой к нему. Дополнительные сведения см. в разделе Общие сведения о серверном веб-элементе управления Literal.
В следующем примере во время выполнения выводится заголовок простой веб-страницы. Основная часть страницы с элементом управления Literal может выглядеть следующим образом:
<body> <form runat="server"> <h1><asp:Literal id="Headline" runat=server mode="PassThrough"/></h1> </form> </body>
Добавьте код на страницу для задания свойства Text элемента управления во время выполнения.
В следующем примере показано, как программно задать текст и кодировку элемента управления Literal. Страница содержит переключатели, позволяющие пользователю выбирать между кодированным и простым текстом.
Примечание. Если для текста, который получен из непроверенного источника, задано свойство Text, задайте для свойства Mode элемента управления значение Encode, чтобы разметка не привела к исполняемой разметке.
<%@ Page Language="VB" %> <script runat="server"> Protected Sub Page_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) Literal1.Text = "This <b>text</b> is inserted dynamically." If radioEncode.Checked = True Then Literal1.Mode = LiteralMode.Encode ElseIf radioPassthrough.Checked = True Then Literal1.Mode = LiteralMode.PassThrough End If End Sub </script> <html> <head 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> </div> </form> </body> </html>
<%@ Page Language="C#" %> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { Literal1.Text = "This <b>text</b> is inserted dynamically."; if (radioEncode.Checked == true) { Literal1.Mode = LiteralMode.Encode; } if(radioPassthrough.Checked == true) { Literal1.Mode = LiteralMode.PassThrough; } } </script> </script> <html> <head 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> </div> </form> </body> </html>