在ASP.NET中添加动态控件,1.1和2.0之间有区别吗?
|
我很确定在ASP.NET 1.0 / 1.1时代,在运行时创建的控件需要在 Page Lifecycle的Page_Load事件之前添加(即在Page_Init内部). 这是微软的一篇文章(适用于.NET 1.0 / 1.1):
但是,在这里的一些帖子中,似乎以上情况不再是这样了. Page_Load中添加的控件似乎适用于其他所有人.部分帖子包括: 我自己尝试过,虽然我没有做足够的测试以消除任何意外行为,但确实有效. Page_Load是一个添加动态控件的安全阶段吗?或者仅适用于.NET 2.0及更高版本? 解决方法我已经用Reflector研究了这个,并且无论何时添加它们,Control类确实可以在动态添加它们时加快速度.它完成所有事情 – 加载viewstate / controlstate,调用回发事件,调用事件处理程序等.我不知道它在ASP.NET 1.x天是否有所不同,但在2.0及以上版本中就是这种情况.至于“危险” – 缺乏经验的用户可能会遇到一些问题,因此建议您在Page_Init或之前添加它们. (请注意,PreInit事件仅适用于页面本身,而不适用于母版页或子控件).在我的头顶(我敢肯定可能会有更多): >默认情况下,viewstate按位置加载.也就是说,它会忽略控件ID,并在加载视图状态时仅考虑树中的控件放置.如果在序列化视图状态时存在动态控件,但在反序列化时不存在,则错误的视图状态项可能会分配给错误的控件,从而导致异常.这可以通过某些设置进行更改,但我现在懒得搜索它们.>由于动态控件添加到页面时会出现“提速”,因此某些事件的顺序可能是意外的.例如,如果在Page_PreRender事件中向页面添加TextBox控件,则TextBox的Changed事件将在那里发生.如果你的事件处理程序代码依赖于在PreRender之前与其余事件发生的事件,那么你就搞砸了. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 什么是crossdomain.xml文件?
- asp.net – 从数据库加载时,DateTime.Kind设置为未指定,而不
- nTier应用程序中的.Net会员资格
- asp.net – 来自WebHttpBinding的WCF服务中的Access Sessio
- asp.net – 使用Post后面的Post方法重定向到另一个页面
- ASP.net Web窗体,在编译时获取aspx /视图错误?
- asp.net – 新安装的IIS. Aspx页面不会显示
- asp.net – 如何确定哪个按钮导致回发
- asp.net-mvc – 如何根据用户过滤MVC 4中的结果
- asp.net核心 – 在ASP.NET核心应用程序中使用NLog
- asp.net-mvc-4 – ASP.NET MVC:脚本捆绑何时决定
- asp.net-mvc-3 – DropDownListFor Unobtrusive
- asp.net-mvc – UIHint属性在MVC中
- asp.net-mvc-2 – 什么是Html.Validate和Html.Va
- ASP.NET Core 1.0 WebSocket安装?
- .net – 默认启用UnsafeHeaderParsing是否可以接
- asp.net – 确定哪个UpdatePanel导致部分(异步)P
- asp.net-mvc-4 – Require.js优化vs asp.net mvc
- asp.net-mvc – ASP.NET MVC内联Razor变量
- asp.net-web-api – HttpClient不报告从Web API返
