zoukankan      html  css  js  c++  java
  • ASP.NET中的另类控件——LiteralControl

    首先看一个aspx文件里的部分内容:

     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    2 <html xmlns="http://www.w3.org/1999/xhtml">
    3 <head id="Head1" runat="server">
    4 <title></title>
    5 </head>
    6 <body>
    7 <form id="form1" runat="server">
    8 </form>
    9 </body>
    10 </html>


    我们知道ASP.NET会把这个文档解析成类似Dom的控件树,控件树是分层、递归的。其中最顶层的是页面Page,那么现在要问,Page的下一层有多少个控件?

    答案是5个,可以输出this.Page.Controls.Count的值验证一下。它是怎么解析的呢?

    第一个:从<!DOCTYPE到transitional.dtd">\r\n

    第二个:从<head id="Head1"到</head>,类型为HtmlHead;

    第三个:包括</head>后面的\r\n\<body>\r\n\t

    第四个:从<form id=到</form>,类型为HtmlForm;

    第五个:从</form>后面的\r\n到最后。

    其中第二个和第四个属于Html控件,而第一、三、五个则属于静态文本,ASP.NET将其解析成LiteralControl。LiteralControl既不是Web控件,也不是Html控件,自成一类,表示 HTML 元素、文本和 ASP.NET 页中不需要在服务器上处理的任何其他字符串。几乎可以说,LiteralControl是ASP.NET中肯定用到的控件,只是你可能不知道而已。

    关于LiteralControl,有几点说明:

    1. LiteralControl也可以有ID、ClientID和UniqueID,但一般很少用到。除了用FindControl方法外,给其设置ID没有什么意义。

    2. LitrelControl不具有视图状态,虽然它也有一个EnableViewState属性,但不起作用,回发后先前更改的状态必丢失。

    3.由于表示的是静态文本,所以无法为LitrelControl本身设置任何样式。

    4. 后台通过其Text属性获取和设置值。

  • 相关阅读:
    完全卸载mysql数据库图文教程
    软件测试 (一) 软件测试方法大汇总(转)
    html笔记之常用标签
    前端之HTML简介<一>
    java笔记之对象的克隆
    java笔记之网络知识--—TCP
    Vue组件通信中事件总线(eventBus)的使用
    React项目之antd-4.0中Form表单的数据获取
    React项目中使用antd遇坑——icon组件的使用
    常见面试题——['1','2','3'].map(parseInt)
  • 原文地址:https://www.cnblogs.com/dalmeeme/p/2318152.html
Copyright © 2011-2022 走看看