建站学 - 轻松建站从此开始!

建站学-个人建站指南,网页制作,网站设计,网站制作教程

当前位置: 建站学 > 网站开发 > asp.net教程 >

ASP.NET动态加载控件的"追赶论"

时间:2008-12-14 11:53来源:网络 作者: 点击:
ASP.NET动态加载控件的"追赶论",至于UserControl的加载很费时,这是你无法绕过去的。如果你的意思是,页面默认加载UserControlA,发生事件后要丢弃UserControlA改为加载UserControlB,浪费了时间在加载UserControlA上。以现在的ASP.NET页面生存周期模型,我们无法解决

  当初我实现这个的时候也是相当郁闷,老是丢失值,于是我就用Visable来解决(是加载WebControl)。以下是其他人的解决方案,蛮有参考价值的。
引用 随心所欲
http://www.cnblogs.com/dlwang2002/archive/2006/12/07/585093.html
结论就是:

1:在特定的时刻加入该控件的定义。至少在Page_Load以前,我用的Page_Init。晚了就执行不了了
2:该控件的id必须一致。因为状态的恢复是根据控件id来完成的。
3:Rebuild的时候一定不要调用子控件的初始化的函数,这样会浪费时间。

问题:可不可以通过设置UserControl的IsPostBack属性来达到一种和Page类似的处理方式呢?这样在UserControl里面就可以使用if(!IsPostBack)来做一些数据初始化了。
引用 Cat Chen
我有写过《深入理解ASP.NET动态控件》的系列文章,你可以去看看有没有值得参考的内容:
http://www.cnblogs.com/cathsfz/archive/2006/10/31/545521.html
http://www.cnblogs.com/cathsfz/archive/2006/11/05/550985.html
http://www.cnblogs.com/cathsfz/archive/2006/11/19/564929.html
关于追赶加载也详细解释了,并非0~n步都会在追赶加载中执行,只有特定的步骤会执行。如果控件已经加载完第k步,添加到另一个加载完第n步的控件中,则仅执行(k+1)~n步,前面的不会重复执行。

至于UserControl的加载很费时,这是你无法绕过去的。如果你的意思是,页面默认加载UserControlA,发生事件后要丢弃UserControlA改为加载UserControlB,浪费了时间在加载UserControlA上。以现在的ASP.NET页面生存周期模型,我们无法解决这个问题,你改进后的解决方案也还是要先加载默认的UserControlA。

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片