【发布时间】:2014-05-13 18:09:19
【问题描述】:
我正在尝试解决以下问题:
我有一个需要在另一个控件中动态加载的用户控件。这个动态加载的控件会引发一个事件,据我所知,只有在 onload 事件期间创建和加载控件时,动态加载的控件引发的事件才会被正确处理。在动态加载控件时,我还必须考虑一个约束,那就是父控件中的一个属性。此属性将确定是否应加载控件。
伪代码:
ControlA
Property ShowControl
ControlA has a CheckBox(chkShowControlIfSelected)
OnLoadEvent()
If chkShowControlIfSelected.checked checked and ShowControlProperty is set
{
reate ControlB Dynamically
ControlB.Event += EventHandler()
Add ControlB to ControlCollection
}
我遇到的问题是,如果我在 prerender 事件中包含加载 controlB 的代码,则属性 ShowControl 设置正确,但未调用 EventHandler()。如果我将代码用于在 pageLoad 事件中动态加载 controlB,则尚未设置属性 ShowControl,但在这种情况下正确调用了 eventHandler 代码。
我是否遗漏了某些内容或在不正确的事件处理程序中处理了代码?
【问题讨论】:
-
从哪里设置
ShowControl属性?您是否使用ViewState实现了此属性? -
该属性是从父页面设置的。是的,该属性已使用 viewstate 实现
标签: asp.net webusercontrol dynamic-usercontrols