如何以允许用户控制事件触发的方式控制加载哪个用户控件

时间:2010-11-22 21:51:29

标签: asp.net events user-controls viewstate

我根据用户点击的标签动态加载其中一个用户控件。我将选定的选项卡索引存储在视图状态中。用户控件上有一个复选框,用于触发OnChanged事件。我的问题是,如果我在Page_Load中加载用户控件,则复选框事件不会触发,因为控件未及时创建。如果我在Page_Init中加载用户控件,页面不知道要加载哪个用户控件我相信因为尚未加载ViewState。如何存储要加载的用户控件并将用户控件上的事件触发?

1 个答案:

答案 0 :(得分:1)

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

修改

另一种选择是根据一些其他标准(ViewState除外)确定要加载哪些控件。例如,如果您将当前选项卡作为查询字符串参数之一,那么在Page_Init期间,该数据将在请求中可用。