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

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

    [html] view plaincopy
     
    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">

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

    第三个:包括</head>后面的 <body>

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

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

    其中第二个和第四个属于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属性获取和设置值。

  • 相关阅读:
    shell脚本之redis自动安装
    脚本系列之jdk安装脚本
    Hibernate查询方式汇总(一)
    LDA数学八卦笔记(一)Gamma函数
    软工实践寒假作业(1/2)
    结对项目-四则运算 “软件”之升级版
    第三次作业:个人项目-小学四则运算 “软件”之初版
    分布式版本控制系统Git的安装与使用
    第一次作业
    分布式版本控制系统Git的安装与使用
  • 原文地址:https://www.cnblogs.com/ranran/p/3988231.html
Copyright © 2011-2022 走看看