主頁 > 知識庫 > ASP.NET中Literal與Label控件的區別

ASP.NET中Literal與Label控件的區別

熱門標簽:地圖標注專業團隊 代理接電話機器人如何取消 塔城代理外呼系統 地圖定位圖標標注 地圖標注的公司有哪些 400電話辦理哪家性價比高 天心智能電銷機器人 遂寧市地圖標注app 濮陽外呼電銷系統怎么樣

一、方案和背景

Literal 控件表示用于向頁面添加內容的幾個選項之一。對于靜態內容,無需使用容器,可以將標記作為 HTML 直接添加到頁面中。但是,如果要動態添加內容,則必須將內容添加到容器中。典型的容器有 Label 控件、Literal 控件、Panel 控件和 PlaceHolder 控件。

Literal 控件與 Label 控件的區別在于 Literal 控件不向文本中添加任何 HTML 元素。(Label 控件呈現一個 span 元素。)因此,Literal 控件不支持包括位置屬性在內的任何樣式屬性。但是,Literal 控件允許指定是否對內容進行編碼。

Panel 和 PlaceHolder 控件呈現為 div 元素,這將在頁面中創建離散塊,與 Label 和 Literal 控件進行內嵌呈現的方式不同。

通常情況下,當希望文本和控件直接呈現在頁面中而不使用任何附加標記時,可使用 Literal 控件。

在 Literal 控件中編碼內容

Literal 控件支持 Mode 屬性,該屬性用于指定控件對您所添加的標記的處理方式??梢詫?Mode 屬性設置為以下值:

·Transform. 將對添加到控件中的任何標記進行轉換,以適應請求瀏覽器的協議。如果向使用 HTML 外的其他協議的移動設備呈現內容,此設置非常有用。

·PassThrough. 添加到控件中的任何標記都將按原樣呈現在瀏覽器中。

·Encode. 將使用 HtmlEncode 方法對添加到控件中的任何標記進行編碼,這會將 HTML 編碼轉換為其文本表示形式。例如,b> 標記將呈現為 lt;bgt;。當希望瀏覽器顯示而不解釋標記時,編碼將很有用。編碼對于安全也很有用,有助于防止在瀏覽器中執行惡意標記。顯示來自不受信任的源的字符串時推薦使用此設置。

二、Literal和Label到底有什么區別

  label在經服務器處理后轉換成客戶端網頁時候使用html的span>標記為住控件,而Literal則是什么標記都不帶 。

  例如:span id="Label1">Label/span>(label的客戶端代碼)
        b>腳本之家/b>(Literal的客戶端代碼)

  literal不可以運用樣式。定位布局比較麻煩。在您要以編程方式設置文本而不添加額外的 HTML 標記時,可以向頁面添加 Literal Web 服務器控件。在要向頁面動態添加文本而不添加任何不屬于該動態文本的元素時,Literal 控件非常有用。例如,您可以使用Literal 控件來顯示從文件或流中讀取的 HTML。如果要顯示靜態文本,則可以使用 HTML 呈現它;不需要 Literal 控件。只有在需要以編程方式呈現文本時才使用 Literal 控件。

三、如何:向 Web 窗體頁添加 Literal Web 服務器控件

  在您要以編程方式設置文本而不添加額外的 HTML 標記時,可以向 Web 窗體頁添加 Literal Web 服務器控件。在要向頁面動態添加文本而不添加任何不屬于該動態文本的元素時,Literal 控件是一種很有用的方式。例如,您可以使用 Literal 控件來顯示您從一個文件或者流中讀取的 HTML。

  說明: 如果想顯示靜態文本,可以使用 HTML 呈現它;不需要 Literal 控件。只有在需要動態更改服務器代碼中的內容時才使用 Literal 控件。

  1、從工具箱的“標準”選項卡中,將 Literal 控件拖動到頁面上。

  2、或者,在“屬性”窗口的“行為”類別下,將 Mode 屬性設置為 Transform、PassThrough 或者 Encode。Mode 屬性指定該控件如何處理向其添加的任何標記。下面的示例顯示一個簡單網頁,該頁在運行時顯示標題新聞。該頁的主體(包括 Literal 控件)類似于下面的代碼。

復制代碼 代碼如下:

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

  3、將代碼添加到頁面上以在運行時設置控件的 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.";
        if (radioEncode.Checked == true)
        {
            Literal1.Mode = LiteralMode.Encode;
        }
        if(radioPassthrough.Checked == true)
        {
            Literal1.Mode = LiteralMode.PassThrough;
        }
    }
/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>nbsp;/div>
    /form>
/body>
/html>

四、Literal 類

在網頁上保留顯示靜態文本的位置。

  使用 System.Web.UI.WebControls.Literal 控件在網頁上保留顯示文本的位置。Literal 控件與 Label 控件類似,但 Literal 控件不允許對所顯示的文本應用樣式??梢酝ㄟ^設置 Text 屬性,以編程方式控制在控件中顯示的文本。

  警告: 此控件可用來顯示用戶輸入,而該輸入可能包含惡意的客戶端腳本。在應用程序中顯示從客戶端發送來的任何信息之前,請檢查它們是否包含可執行腳本、SQL 語句或其他代碼。ASP.NET 提供輸入請求驗證功能以阻止用戶輸入中的腳本和 HTML。還提供驗證服務器控件以判斷用戶輸入。


下面的示例說明如何使用 Literal 控件顯示靜態文本。

  說明: 下面的示例使用單文件代碼模型,如果將它直接復制到代碼隱藏文件中,則它可能無法正常工作。此代碼示例必須被復制到具有 .aspx 擴展名的空文本文件中。

復制代碼 代碼如下:

%@ Page Language="C#" AutoEventWireup="True" %>
 
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
html>
head>
    title>Literal Example/title>
script runat="server">
      void ButtonClick(Object sender, EventArgs e)
      {
         Literal1.Text="Welcome to ASP.NET!!";
      }
   /script>
/head>
body>
   form id="form1" 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>

您可能感興趣的文章:
  • LiteralControl ASP.NET中的另類控件
  • ASP.NET中Label控件用法詳解
  • ASP.NET中Literal控件的使用方法

標簽:吉林 河南 汕頭 本溪 重慶 宜春 麗江 婁底

巨人網絡通訊聲明:本文標題《ASP.NET中Literal與Label控件的區別》,本文關鍵詞  ASP.NET,中,Literal,與,Label,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET中Literal與Label控件的區別》相關的同類信息!
  • 本頁收集關于ASP.NET中Literal與Label控件的區別的相關信息資訊供網民參考!
  • 推薦文章
    2020久久精品亚洲|久久窝窝国产精品午夜看片|亚洲 日韩 激情 无码 中出|国产精品乱码高清在线