asp.net组件(4):页面跟踪,了解一些原理
2007-12-18 19:23
543 查看
首先往Web窗体中拉入几个控件.
有4个控件组成.label button panel中含textbox
将label的Visable设为false即,使其不被显示.
然后开启跟踪,运行程序
得到以下数据
我们看到很多个LiteralControl控件,这个是用来做什么呢?我们没有添加这个控件呀?
其实这是asp.net程序代码中的空白部份.
比如:
<asp:TextBox id="txt1" runat="server" />
<asp:TextBox id="txt2" runat="server" />
两个控件之间就有了空白了.LiteralControl控件就在他们之间
比如:
<asp:TextBox id="txt1" runat="server" /><asp:TextBox id="txt2" runat="server" />
两个控件之间就没有了空白.也就没有了LiteralControl控件喽.不信可以自己试一试啊.
回到正题:
可以看到 Label1的呈现大小字节数为 0 由于其Visable设为false所以不被呈现,当然呈现大小为0喽.
Button1 被呈现,大小字节数为66
我们主要观察Panel1 与其中的 TextBox1 127 和 51
我们来看看其回发后的大小,就可以看出系统是如何保留数据的.
输入一些数值,点Button.触使回发.
Panel1与其下的TextBox1的大小发生改变 从127 和 51 变成 146 和70 数据增大.
说明了,客户端把数据通过ViewState发给Asp.net,系统保留了数据.绘制它们.
学会了这些之后,我们也可以来测试下
RenderControl
Render
RenderChildren
查看组件(3)中的代码片段.
protected override void RenderChildren(HtmlTextWriter writer)
{
//foreach (Control c in this.Controls)
//{
// c.RenderControl(writer);
//}
}
注释掉以上4行.使控件不能绘制子控件.
我们推断UseComponent1下的子控件ctl05呈现大小应该为0
跟踪下验证结果是否正确:
结果正确.
去掉以上4行注释.运行程序,使其能绘制子控件.
我们推断UseComponent1下的子控件ctl05呈现大小不为0
跟踪下验证结果是否正确:
为10正确.
有4个控件组成.label button panel中含textbox
将label的Visable设为false即,使其不被显示.
然后开启跟踪,运行程序
得到以下数据
我们看到很多个LiteralControl控件,这个是用来做什么呢?我们没有添加这个控件呀?
其实这是asp.net程序代码中的空白部份.
比如:
<asp:TextBox id="txt1" runat="server" />
<asp:TextBox id="txt2" runat="server" />
两个控件之间就有了空白了.LiteralControl控件就在他们之间
比如:
<asp:TextBox id="txt1" runat="server" /><asp:TextBox id="txt2" runat="server" />
两个控件之间就没有了空白.也就没有了LiteralControl控件喽.不信可以自己试一试啊.
回到正题:
可以看到 Label1的呈现大小字节数为 0 由于其Visable设为false所以不被呈现,当然呈现大小为0喽.
Button1 被呈现,大小字节数为66
我们主要观察Panel1 与其中的 TextBox1 127 和 51
我们来看看其回发后的大小,就可以看出系统是如何保留数据的.
输入一些数值,点Button.触使回发.
Panel1与其下的TextBox1的大小发生改变 从127 和 51 变成 146 和70 数据增大.
说明了,客户端把数据通过ViewState发给Asp.net,系统保留了数据.绘制它们.
学会了这些之后,我们也可以来测试下
RenderControl
Render
RenderChildren
查看组件(3)中的代码片段.
protected override void RenderChildren(HtmlTextWriter writer)
{
//foreach (Control c in this.Controls)
//{
// c.RenderControl(writer);
//}
}
注释掉以上4行.使控件不能绘制子控件.
我们推断UseComponent1下的子控件ctl05呈现大小应该为0
跟踪下验证结果是否正确:
结果正确.
去掉以上4行注释.运行程序,使其能绘制子控件.
我们推断UseComponent1下的子控件ctl05呈现大小不为0
跟踪下验证结果是否正确:
为10正确.
相关文章推荐
- net控件中数据导到Excel的格式 首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。下面就列出常用的一些格式: 1) 文本
- 了解使用 ASP.NET AJAX 进行局部页面更新(一)
- 调试Atlas:使用单独的Trace viewer跟踪调试ASP.NET页面
- ASP.NET页面的CheckBoxList组件
- ASP.NET页面与IIS底层交互和工作原理详解
- web developer tips (77):在ASP.NET启动启动页面级跟踪
- asp.net页面的304 Not Modified代码与 原理
- ASP.NET页面与IIS底层交互和工作原理详解
- asp.net页面回传与js调用服务端事件,Postback的原理
- asp.net页面回传与js调用服务端事件、PostBack的原理详解(转)
- ASP.NET页面与IIS底层交互和工作原理详解
- ASP.NET页面的CheckBoxList组件
- Asp.Net请求原理and页面生命周期
- [收藏].NET 1.1中预编译ASP.NET页面实现原理浅析 [1] 自动预编译机制浅析
- ★★★【庖丁解牛:纵向切入Asp.net 3.5控件和组件开发技术系列—(6)页面状态机制(视图状态和控件状态)】★★★
- ASP.NET页面请求原理浅析
- ASP.NET页面的CheckBoxList组件
- asp.net页面回传与js调用服务端事件、PostBack的原理详解
- ASP.NET页面的CheckBoxList组件
- ASP.NET页面与IIS底层交互和工作原理详解