亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

ASP.NET中Literal與Label控件的區(qū)別

 更新時(shí)間:2016年04月26日 10:49:21   作者:Fskjb  
相信學(xué)ASP.NET的朋友們都會(huì)遇到Literal和Label到底該用那個(gè)的問(wèn)題,Literal和Label到底有什么不同,其實(shí)簡(jiǎn)單的講就是Literal不會(huì)產(chǎn)生HTML代碼,而Label會(huì)產(chǎn)生一個(gè)span標(biāo)記,下面為大家詳細(xì)講解一下。

一、方案和背景

Literal 控件表示用于向頁(yè)面添加內(nèi)容的幾個(gè)選項(xiàng)之一。對(duì)于靜態(tài)內(nèi)容,無(wú)需使用容器,可以將標(biāo)記作為 HTML 直接添加到頁(yè)面中。但是,如果要?jiǎng)討B(tài)添加內(nèi)容,則必須將內(nèi)容添加到容器中。典型的容器有 Label 控件、Literal 控件、Panel 控件和 PlaceHolder 控件。

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

Panel 和 PlaceHolder 控件呈現(xiàn)為 div 元素,這將在頁(yè)面中創(chuàng)建離散塊,與 Label 和 Literal 控件進(jìn)行內(nèi)嵌呈現(xiàn)的方式不同。

通常情況下,當(dāng)希望文本和控件直接呈現(xiàn)在頁(yè)面中而不使用任何附加標(biāo)記時(shí),可使用 Literal 控件。

在 Literal 控件中編碼內(nèi)容

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

·Transform. 將對(duì)添加到控件中的任何標(biāo)記進(jìn)行轉(zhuǎn)換,以適應(yīng)請(qǐng)求瀏覽器的協(xié)議。如果向使用 HTML 外的其他協(xié)議的移動(dòng)設(shè)備呈現(xiàn)內(nèi)容,此設(shè)置非常有用。

·PassThrough. 添加到控件中的任何標(biāo)記都將按原樣呈現(xiàn)在瀏覽器中。

·Encode. 將使用 HtmlEncode 方法對(duì)添加到控件中的任何標(biāo)記進(jìn)行編碼,這會(huì)將 HTML 編碼轉(zhuǎn)換為其文本表示形式。例如,<b> 標(biāo)記將呈現(xiàn)為 &lt;b&gt;。當(dāng)希望瀏覽器顯示而不解釋標(biāo)記時(shí),編碼將很有用。編碼對(duì)于安全也很有用,有助于防止在瀏覽器中執(zhí)行惡意標(biāo)記。顯示來(lái)自不受信任的源的字符串時(shí)推薦使用此設(shè)置。

二、Literal和Label到底有什么區(qū)別

  label在經(jīng)服務(wù)器處理后轉(zhuǎn)換成客戶(hù)端網(wǎng)頁(yè)時(shí)候使用html的<span>標(biāo)記為住控件,而Literal則是什么標(biāo)記都不帶 。

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

  literal不可以運(yùn)用樣式。定位布局比較麻煩。在您要以編程方式設(shè)置文本而不添加額外的 HTML 標(biāo)記時(shí),可以向頁(yè)面添加 Literal Web 服務(wù)器控件。在要向頁(yè)面動(dòng)態(tài)添加文本而不添加任何不屬于該動(dòng)態(tài)文本的元素時(shí),Literal 控件非常有用。例如,您可以使用Literal 控件來(lái)顯示從文件或流中讀取的 HTML。如果要顯示靜態(tài)文本,則可以使用 HTML 呈現(xiàn)它;不需要 Literal 控件。只有在需要以編程方式呈現(xiàn)文本時(shí)才使用 Literal 控件。

三、如何:向 Web 窗體頁(yè)添加 Literal Web 服務(wù)器控件

  在您要以編程方式設(shè)置文本而不添加額外的 HTML 標(biāo)記時(shí),可以向 Web 窗體頁(yè)添加 Literal Web 服務(wù)器控件。在要向頁(yè)面動(dòng)態(tài)添加文本而不添加任何不屬于該動(dòng)態(tài)文本的元素時(shí),Literal 控件是一種很有用的方式。例如,您可以使用 Literal 控件來(lái)顯示您從一個(gè)文件或者流中讀取的 HTML。

  說(shuō)明: 如果想顯示靜態(tài)文本,可以使用 HTML 呈現(xiàn)它;不需要 Literal 控件。只有在需要?jiǎng)討B(tài)更改服務(wù)器代碼中的內(nèi)容時(shí)才使用 Literal 控件。

  1、從工具箱的“標(biāo)準(zhǔn)”選項(xiàng)卡中,將 Literal 控件拖動(dòng)到頁(yè)面上。

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

復(fù)制代碼 代碼如下:

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

  3、將代碼添加到頁(yè)面上以在運(yùn)行時(shí)設(shè)置控件的 Text 屬性。

下面的示例顯示如何以編程方式設(shè)置 Literal 控件的文本和編碼。該頁(yè)包含一組單選按鈕,允許用戶(hù)在編碼文本和傳遞文本之間選擇。

說(shuō)明: 如果您正將 Text 屬性設(shè)置為來(lái)自不受信任源的文本,則要將控件的 Mode 屬性設(shè)置為 Encode,這樣標(biāo)記才不會(huì)形成可執(zhí)行標(biāo)記。

復(fù)制代碼 代碼如下:

<%@ 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 類(lèi)

在網(wǎng)頁(yè)上保留顯示靜態(tài)文本的位置。

  使用 System.Web.UI.WebControls.Literal 控件在網(wǎng)頁(yè)上保留顯示文本的位置。Literal 控件與 Label 控件類(lèi)似,但 Literal 控件不允許對(duì)所顯示的文本應(yīng)用樣式。可以通過(guò)設(shè)置 Text 屬性,以編程方式控制在控件中顯示的文本。

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


下面的示例說(shuō)明如何使用 Literal 控件顯示靜態(tài)文本。

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

復(fù)制代碼 代碼如下:

相關(guān)文章

  • ASP.NET web.config 配置節(jié)點(diǎn)詳解

    ASP.NET web.config 配置節(jié)點(diǎn)詳解

    這篇文章主要介紹了ASP.NET web.config 節(jié)點(diǎn)的配置,講解的非常詳細(xì),需要的朋友可以參考下。
    2016-06-06
  • 常用C#關(guān)鍵字詳解教程(比較全面)

    常用C#關(guān)鍵字詳解教程(比較全面)

    學(xué)習(xí)C#很久了,但可能你也和我一樣,總有那么一兩個(gè)關(guān)鍵詞,說(shuō)不清楚它是什么意思,有什么用,那么這篇文章就帶你一一講解。
    2016-04-04
  • asp.net FindControl方法誤區(qū)和解析

    asp.net FindControl方法誤區(qū)和解析

    在ASP.NET中Control都有一個(gè)FindControl方法,其作用是根據(jù)ID(注意既不是UniqueID也不是ClientID)在Control所在的命名容器中尋找相應(yīng)控件,但實(shí)際使用中存在很多誤區(qū)和陷阱,下面談?wù)剛€(gè)人對(duì)此的理解
    2012-01-01
  • ASP.NET?MVC模式簡(jiǎn)介

    ASP.NET?MVC模式簡(jiǎn)介

    這篇文章介紹了ASP.NET?MVC模式,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • WPF布局及布局容器介紹

    WPF布局及布局容器介紹

    這篇文章介紹了WPF布局及布局容器,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • asp.net OleDbCommand 的用法

    asp.net OleDbCommand 的用法

    asp.net下OleDbCommand的使用代碼
    2008-04-04
  • 利用C#遠(yuǎn)程存取Access數(shù)據(jù)庫(kù)

    利用C#遠(yuǎn)程存取Access數(shù)據(jù)庫(kù)

    目前,基于數(shù)據(jù)庫(kù)服務(wù)器的桌面管理程序和Web程序已經(jīng)有太多的應(yīng)用了,尤其是網(wǎng)絡(luò)的大量普及,孤立地?cái)?shù)據(jù)庫(kù)管理系統(tǒng)無(wú)法勝任分布式管理應(yīng)用,但是面對(duì)基于Access數(shù)據(jù)庫(kù)的現(xiàn)有的桌面應(yīng)用我們也無(wú)法完全的摒棄。我們利用.Net 遠(yuǎn)程處理功能將連接和存取Access的行為封裝為一個(gè)遠(yuǎn)程對(duì)象,供網(wǎng)絡(luò)中其它客戶(hù)端通過(guò)調(diào)用該遠(yuǎn)程對(duì)象來(lái)存取實(shí)際的Access數(shù)據(jù)庫(kù)。我們以 C# 2005 為開(kāi)發(fā)語(yǔ)言來(lái)實(shí)現(xiàn)上述功能。
    2008-04-04
  • Blazor框架簡(jiǎn)介

    Blazor框架簡(jiǎn)介

    Blazor是微軟推出的基于.net平臺(tái)以及http://ASP.net?core技術(shù)的?交互式客戶(hù)Web?UI框架。這篇文章為大家簡(jiǎn)單介紹了Blazor框架,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • asp.net實(shí)例代碼protected override void Render(HtmlTextWriter writer)

    asp.net實(shí)例代碼protected override void Render(HtmlTextWriter wri

    把最終要輸出的html壓縮后再輸出和最終輸出前先存為html文件,如果發(fā)布最新信息了,可以打開(kāi)一次default.aspx,然后他又會(huì)生成一次html
    2008-08-08
  • ASP.NET常用函數(shù)(推薦)

    ASP.NET常用函數(shù)(推薦)

    ASP.NET常用函數(shù)(推薦)...
    2006-09-09

最新評(píng)論