在运行时显示动态控件

时间:2010-05-07 13:47:34

标签: asp.net vb.net user-controls

我希望在运行时在面板中显示不同的控件,具体取决于菜单选择。

有什么想法吗?

4 个答案:

答案 0 :(得分:1)

将所有可能的控件放在面板中,然后(假设您正在使用ASP.Net菜单控件)将相应控件的.Visible属性设置为True,并将所有其他控件设置为{ {1}} .Visible事件中的False属性。

答案 1 :(得分:1)

您只需要实例化所需的控件并通过

添加它
YourPanel.Controls.Add(yourcontrol)

我认为在VB中必须几乎相同。

答案 2 :(得分:1)

如果您希望所有控件始终可用(用于数据共享),您可以按照Joel的建议进行操作。但从语法上讲,如果您将菜单项与Page_OnLoad()内的控件相关联,我会说你可以更容易:

Control1.Visible = MenuItem1.Selected;
Control2.Visible = MenuItem1.Selected || MenuItem2.Selected;
Control3.Visible = MenuItem3.Selected;

希望有所帮助。

答案 3 :(得分:1)

1)在Visible = false的父页面中添加所有用户控件。根据菜单选择,使Visible = true。

优点 - 易于实施

缺点 - 昂贵。将在加载父页面时调用每个用户控件的Load事件。

2)将控件动态加载到占位符。

this.PlaceHolder1.Controls.Add(子);

优点 - 重量轻。

缺点 - 如果父页面想要在回发后从用户控件中检索数据,则需要编写一些代码。