2012-08-09 104 views
0

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

为了清楚起见,几乎每个选项卡,树视图,菜单栏组合都需要一个唯一的控件。

我的问题是所有的回发/加载发生在“OnMenuChanged”事件触发之前,所以我是一个“设置”用户控件的背后。即使我使用会话/视图状态,直到我需要存储在其中的值之后,它们才会被分配。

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

如何管理?

回答

0

如果我明白你想要做什么,你可以不使用占位符控件,并将你需要的用户控件注入到你正在管理的事件中?在“OnMenuSelected”事件中尝试做这样的事情。

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

让我试试看。 – Sethery 2012-08-09 13:45:20

+0

只记得你的aspx页面,你必须有一个占位符控件,你希望用户控件被加载。 – 2012-08-09 13:46:15

+0

查看先前的程序员使用tabpageview.controls.add(userCtrl)之前的代码后;他仍然不得不在回发中加载控件两次,正如所建议的那样,但他仍然在创建的tabstrip页面视图上加载了这些控件 – Sethery 2012-08-09 13:55:19