2010-11-22 77 views
0

我基于用户点击哪个选项卡动态加载众多用户控件之一。我将选定的标签索引存储在视图状态下。用户控件上有一个复选框,用于触发OnChanged事件。我的问题是,如果我在Page_Load中加载用户控件,复选框事件不会触发,因为控件没有及时创建。如果我在Page_Init中加载用户控件,页面不知道要加载哪个用户控件,因为ViewState尚未加载。我如何存储哪个用户控件加载并获取用户控件上的事件触发?如何控制以允许用户控件事件触发的方式加载哪个用户控件

+1

我只是补充一点,如果您在包含页面/控件的Page_Load中动态加载它,您可以获取复选框事件。如果它没有开火,那么可能有其他事情出错了。我见过的最常见的问题是创建这个问题,不是每次初始化时都将复选框的标识设置为相同的标识 – 2010-11-22 23:27:50

回答

1

我发现的最佳策略是创建Page_Init事件中的所有控件,并将其Visible属性设置为false(在您的案例的Page_Load中),如果它们不应出现在呈现的页面上。

编辑

另一种选择是,以确定哪些控制基于一些其它标准(除了视图状态)加载。例如,如果您使当前选项卡成为查询字符串参数之一,则该数据将在Page_Init期间在请求中可用。

+0

我不认为这是我的选择。用户控件非常大,并且由于性能的原因,我一次只能加载一个。你知道其他策略吗? – adam0101 2010-11-22 22:00:05

相关问题