| 導購 | 订阅 | 在线投稿
分享
 
 
 

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

2008-12-13 08:24:00  編輯來源:互聯網  简体版  手機版  評論  字體: ||
 
 
  当初我实现这个的时候也是相当郁闷,老是丢失值,于是我就用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。
 
 
 
  当初我实现这个的时候也是相当郁闷,老是丢失值,于是我就用Visable来解决(是加载WebControl)。以下是其他人的解决方案,蛮有参考价值的。 引用 随心所欲 [url=http://www.cnblogs.com/dlwang2002/archive/2006/12/07/585093.html]http://www.cnblogs.com/dlwang2002/archive/2006/12/07/585093.html[/url] 结论就是: 1:在特定的时刻加入该控件的定义。至少在Page_Load以前,我用的Page_Init。晚了就执行不了了 2:该控件的id必须一致。因为状态的恢复是根据控件id来完成的。 3:Rebuild的时候一定不要调用子控件的初始化的函数,这样会浪费时间。 问题:可不可以通过设置UserControl的IsPostBack属性来达到一种和Page类似的处理方式呢?这样在UserControl里面就可以使用if(!IsPostBack)来做一些数据初始化了。 引用 Cat Chen 我有写过《深入理解ASP.NET动态控件》的系列文章,你可以去看看有没有值得参考的内容: [url=http://www.cnblogs.com/cathsfz/archive/2006/10/31/545521.html]http://www.cnblogs.com/cathsfz/archive/2006/10/31/545521.html[/url] [url=http://www.cnblogs.com/cathsfz/archive/2006/11/05/550985.html]http://www.cnblogs.com/cathsfz/archive/2006/11/05/550985.html[/url] [url=http://www.cnblogs.com/cathsfz/archive/2006/11/19/564929.html]http://www.cnblogs.com/cathsfz/archive/2006/11/19/564929.html[/url] 关于追赶加载也详细解释了,并非0~n步都会在追赶加载中执行,只有特定的步骤会执行。如果控件已经加载完第k步,添加到另一个加载完第n步的控件中,则仅执行(k+1)~n步,前面的不会重复执行。 至于UserControl的加载很费时,这是你无法绕过去的。如果你的意思是,页面默认加载UserControlA,发生事件后要丢弃UserControlA改为加载UserControlB,浪费了时间在加载UserControlA上。以现在的ASP.NET页面生存周期模型,我们无法解决这个问题,你改进后的解决方案也还是要先加载默认的UserControlA。
󰈣󰈤
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
王朝网络微信公众号
微信扫码关注本站公众号 wangchaonetcn
 
  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味著赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有