根据其他控件事件动态加载用户控件

时间:2012-08-09 13:39:28

标签: c# asp.net postback

我有一个变量的“横截面”,我需要用它来动态生成一组用户控件。在页面的中心,我有一个Telerik multitab /页面。我有一个自定义树菜单和一个自定义菜单栏,基于菜单输入的组合,每个选项卡应加载与该数据横截面相关的用户控件。

为清楚起见,几乎每个标签,树视图,菜单栏组合都需要一个独特的控件。

我的问题是所有的回发/加载都发生在“OnMenuChanged”事件触发之前,所以我是一个“设置”的用户控件。即使我使用session / viewstate,在我需要存储在其中的值之后,它们也不会被分配。

目前正在发生的事情是在“pageviewcreated”事件中加载默认用户控件,然后在onMenuItemChanged中我返回并重新加载用户控件。这似乎非常低效,并且使选择正确的.ascx的方法变得复杂。

我该如何管理?

1 个答案:

答案 0 :(得分:0)

如果我了解您要尝试做什么,您是否可以使用占位符控件并将所需的用户控件注入您正在管理的事件内部?尝试在“OnMenuSelected”事件中做这样的事情。

 WebUserControl1 uc = (WebUserControl1) Page.LoadControl("WebUserControl1.ascx"); 
 PlaceHolder1.Controls.Add(uc);