asp.net中Literal与label的区别

一.Literal Web 服务器控件概述(摘于MSDN)

可以使用 Literal Web 服务器控件作为页面上其他内容的容器。Literal 最常用于向页面中动态添加内容。

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;b&gt;。当希望浏览器显示而不解释标记时,编码将很有用。编码对于安全也很有用,有助于防止在浏览器中执行恶意标记。显示来自不受信任的源的字符串时推荐使用此设置。

二.Literal和Label到底有什么区别

label在经服务器处理后转换成客户端网页时候使用html的<span>标记为住控件,而Literal则是什么标记都不带 。

例如:<span >Label</span>(label的客户端代码)
<b>尼古拉斯凯奇</b>(Literal的客户端代码)

literal不可以运用样式。定位布局比较麻烦。

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

下面再转一下一位达人的实际引用..

1<OBJECT height=288 width=384 classid=clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa VIEWASTEXT>
2                   <PARAM VALUE="10160"><PARAM VALUE="7620">
3                   <PARAM VALUE="-1"><PARAM VALUE="0">
4                   <PARAM VALUE="0"><PARAM VALUE="0">
5                   <PARAM VALUE="<asp:Literal runat='server'></asp:Literal>">
6                   <PARAM VALUE="imagewindow"><PARAM VALUE="clip1">
7                   <PARAM VALUE="0"><PARAM VALUE="0"><PARAM VALUE="0">
8                   <PARAM VALUE="0"><PARAM VALUE="#000000">
9               </OBJECT>
那么如何让这个播放器能根据我们传的参数不同而播放不同的内容呢?上面一段Html
代码的第5行就指明了这个播放器播放的内容来源,为了实现能根据参数不同播放不同的内容,我们将其Value值设置为一个Literal控件,然后在后置代码中动态的对Literal的Text属性赋值就OK了。代码如下:
       /**//// <summary>
       ///       Author: SHY520    
       ///            http://pw.cnblogs.com
       /// </summary>
       public class ShowVideoContent : System.Web.UI.UserControl
       {
           protected System.Web.UI.WebControls.Literal lt_reader;
           protected System.Web.UI.WebControls.Literal lt_vdate;
           protected System.Web.UI.WebControls.Literal lb_author;
           protected System.Web.UI.WebControls.Literal lt_resource;
           protected System.Web.UI.WebControls.Label lb_title;

//注意:写在Object中的Literal需要我们手工定义
           Literal lt_src;

private void Page_Load(object sender, System.EventArgs e)
           {
               if(Request.QueryString["id"] != null)
               {
                   int id"].ToString());

;       //得到视频新闻内容
                   VideoContent vc = VideoContent.Find(id);

lt_reader.Text = vc.Announcer;
                   lt_vdate.Text = vc.Vdate.ToShortDateString();
                   lb_author.Text = vc.Author;
                   lt_resource.Text = vc.Resource;
                   lb_title.Text = vc.Videotitle;
                
                   //对播放内容赋值
                   lt_src.Text = vc.Linkurl;
               }
           }
}

个人觉得Literal控件有点像服务器的占位符..是一个功能强大的占位符.他不止可以占位HTML元素还可以占位JavaScript代码块..下面是项目中做过的..

    在HTML页的最底部为JavaScript代码块占一个位(其实可以根据实际需要变一变).

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

在后台代码中..ltScript.Text = "<script type=\"text/javascript\">Select(\"nav2\");</script>";这里调用了签名为Select的标签选择函数..这样可以在后台根据实际需要动态加载JavaScript代码块..非常实用..

(转)asp.net中Literal与label的区别的更多相关文章

  1. asp.net中Literal与label的区别

    Literal 控件表示用于向页面添加内容的几个选项之一.对于静态内容,无需使用容器,可以将标记作为 HTML 直接添加到页面中.但是,如果要动态添加内容,则必须将内容添加到容器中.典型的容器有 La ...

  2. ASP.NET中Literal控件的使用方法(用于向网页中动态添加内容)

    原文:https://www.jb51.net/article/82855.htm 可以将 Literal 控件用作网页上其他内容的容器.Literal 控件最常用于向网页中动态添加内容.简单的讲,就 ...

  3. asp.net中virtual和abstract的区别

    这篇文章主要介绍了asp.net中virtual和abstract的区别,较为详细的分析了virtual与abstract的概念与具体用法,并以实例的形式予以总结归纳,需要的朋友可以参考下 本文实例分 ...

  4. asp.net中virtual和abstract的区别分析

    这篇文章主要介绍了asp.net中virtual和abstract的区别,较为详细的分析了virtual与abstract的概念与具体用法,并以实例的形式予以总结归纳,需要的朋友可以参考下 本文实例分 ...

  5. Asp.net 中 OnClientClick 与 OnClick 的区别

    OnClientClick 是客户端事件处理方法,一般采用JavaScript来进行处理,也就是直接在IE端运行,一点击就运行. OnClick 是服务器端事件处理方法,在服务器端也就是IIS中运行, ...

  6. 在ASP.NET中,<%= %>和<%# %>有什么区别

    asp.net中<%#%>出现在repeater gridview等控件中.用以绑定控件的datasource asp.net中<%%>的意思是 上运行c#或者vb代码,比如: ...

  7. 动态生成页面(一)——ASP.NET中Literal使用

    在页面中加入内容时,假设是静态内容.无需使用容器,能够直接将标记作为HTML直接加入到页面中:可是,假设是动态内容,则必须借助容器将内容加入到页面中.典型的容器有:Label控件.Literal控件. ...

  8. ASP.NET中Literal,只增加纯粹的内容,不附加产生html代码

    页面代码 <div style="float: right; color: #666; line-height: 30px; margin-right: 12px;" id= ...

  9. asp.net 中Repeater和Gridview的区别

             Griview:              优点:1.GridView是从WebControl派生出来的,拥有WebControl样式属性,自身会被解析为table,其中的每一行会被 ...

随机推荐

  1. 如何用angularjs制作一个完整的表格之一__创建简单表格

    初步接手人生的第一个项目,需要用angularjs制作表格和实现各种功能,因此遇到了各种问题和以前不熟悉的知识点,在此记录下来,以供大家学习交流,解决方式可能并不完善或符合规范,如果大家有更好的方式欢 ...

  2. PHP图形计算器(计算三角形矩形周长面积)

    运用PHP面向对象的知识设计一个图形计算器,同时也运用到了抽象类知识,这个计算器可以计算三角形的周长和面积以及矩形的周长和面积.本图形计算器有4个页面:1.PHP图形计算器主页index.php;   ...

  3. php 用于绘图使用的颜色数组

    $colorArr = array(0x912CEE, 0x99ff00, 0x312520, 0x801dae, 0x25f8cb, 0xCC3333, 0x808080, 0xa29b7c, 0x ...

  4. mysql 表格中的数据量过大,修改数据库字段信息会花费很长的时间

    遇到几百万的数据操作遇到很多问题,比如分区,比如分表,sql语句的效率问题.努力学习好mysql优化还是很有必要的.

  5. 用tbody代替div 解决 table tr的隐藏问题

    有如下需求,需要控制一个table内几个tr的显示问题.一开始想的方法是在这几个要显示的tr外面套一个div,利用div的display:none属性来解决. 但是后来发现div和tr嵌套的时候会有问 ...

  6. ubuntu下MySQL安装配置及基本操作

    在linux下安装方法: 分为四种:一: 直接用软件仓库自动安装(如:ubuntu下,sudo apt-get install mysql-server; Debain下用yum安装): 二:官网下载 ...

  7. C语言学习笔记--类型定义&联合

    一.类型定义 C语言自定义数据类型 (typedef) C语言提供一个叫做typedef的功能来声明一个已有的数据类型的新名字. typedef int Length; 使得Length成为int类型 ...

  8. 【Maven实战】Maven开发环境的搭建和案例展示

    1.首先到www.apache.org中下载maven,得到一个apache-maven-3.1.0-bin.zip的压缩包. 2.将此压缩包解压,这里解压到D:\docs中,然后找到maven的bi ...

  9. [Android] AudioTrack实例

    AudioTrack在Android系统中是用于PCM数据的混音.播放,并不涉及到音频的解码.因此MP3这类经过编码的音频格式文件不能直接通过AudioTrack正确地播放,AudioTrack只能播 ...

  10. PF_NETLINK应用实例NETLINK_KOBJECT_UEVENT具体实现--udev实现原理

    PF_NETLINK应用实例NETLINK_KOBJECT_UEVENT具体实现--udev实现原理 相对于linux来说,udev还是一个新事物.然而,尽管它03年才出现,尽管它很低调(J),但它无 ...