博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET中的另类控件
阅读量:6206 次
发布时间:2019-06-21

本文共 1047 字,大约阅读时间需要 3 分钟。

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

[html] 
 
  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属性获取和设置值。

转载地址:http://yowja.baihongyu.com/

你可能感兴趣的文章
进程子进程[Linux]操作系统算法实验一:进程控制实验
查看>>
深入解读PHP删除Cookie技巧
查看>>
服务器编程Linux高性能服务器编程
查看>>
Windows 8.1的触摸屏和开始菜单的设计
查看>>
微信公众平台开发(一) 配置接口
查看>>
glut 右键子菜单
查看>>
傻嘎,IOC原来是这样子的
查看>>
空心验证码(定制)
查看>>
C++基础学习-20120518
查看>>
Spring JTA应用JOTM & Atomikos I Application
查看>>
U盘安装CentOS
查看>>
评《凶器是手机还是充电器?》-开关电源原理
查看>>
Linux添加/删除用户和用户组
查看>>
如何将HashMap,按照value值排序
查看>>
第八周(3) Word2007样式
查看>>
指针与字符串
查看>>
jquery切换class
查看>>
[原创]项目管理知识体系指南之 13项目干系人管理思维导图
查看>>
如何解决 SogouIinput not enough space for thread data ?? 虚拟内存
查看>>
与非CCR代码互操作
查看>>