我有一个c#web应用程序,我需要动态生成控件,控件上的操作也会影响将呈现哪些控件。想象一下例如按钮列表,其中每个按钮应该自己移除(及其在数据库中的引用)。我觉得我不明白这里有一些非常基本的东西(至少应该是这样)
我想在这里使用事件处理程序。但是,问题是我应该在Page_Load或PreRender中生成控件的位置?如果我在page_load中生成它们,则事件处理程序尚未触发,因此生成的内容尚未更新。我也可以在PreRender中生成它,但事件处理程序不会触发,因为控件还不存在。
处理此问题的首选方法是什么?我真的想避免以后修改生成的内容的选项,在我的情况下它太容易出错了。我想在事件处理完毕后立即从头开始生成所有内容。目前我通过在生成控件之前检查request.form来部分地解决这个问题,但是我有很多动作,在很多情况下它并不是一个可行的解决方案。
答案 0 :(得分:2)
我通过覆盖OnInit来创建控件
这意味着它们可供视图状态恢复任何值,OnLoad为时已晚。
PreRender用于填写文本框和渲染脚本等最后一分钟
但是请注意,您的控件必须在回发后以与恢复值完全相同的方式重建(相同的ID等)。