【发布时间】:2012-03-06 12:34:33
【问题描述】:
我有一个 c# Web 应用程序,我需要在其中动态生成控件,并且控件上的操作也会影响将呈现哪些控件。例如,想象一个按钮列表,其中每个按钮都应删除自身(及其在数据库中的引用)。我觉得我在这里不太了解一些非常基本的东西(至少应该是这样)
我想在这里使用事件处理程序。但是,问题是我应该在哪里生成控件,在 Page_Load 或 PreRender 中?如果我在 page_load 中生成它们,则事件处理程序尚未触发,因此生成的内容还不是最新的。我也可以在 PreRender 中生成它,但是事件处理程序不会触发,因为控件还不存在。
处理此问题的首选方法是什么?我真的想避免以后修改生成的内容的选项,在我的情况下这太容易出错了。我想在事件处理完毕后从头开始生成所有内容。目前我通过在生成控件之前检查 request.form 来部分解决这个问题,但是我有很多操作,在某些情况下它已经不是一个真正可行的解决方案。
【问题讨论】:
-
MSDN 上的 ASP.NET 生命周期推荐 PreInit msdn.microsoft.com/en-us/library/ms178472.aspx