2010-05-07 71 views

回答

1

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

优势 - 易于实施

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

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

this.PlaceHolder1.Controls.Add(child);

优点 - 重量轻。

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

1

把所有的可能控制在你的面板,然后(假设你使用ASP.Net菜单控制)相应的控制的.Visible属性设置为True和所有其他控件的.Visible属性FalseMenuItemClick事件。

1

你只需要实例你想要的控制,并通过

YourPanel.Controls.Add(yourcontrol) 

我认为,在VB必须是几乎相同的添加。

+0

Thanx。 我发现这个totorial: http://quickstart.developerfusion.co.uk/QuickStart/aspnet/doc/ctrlref/userctrl/default.aspx – 2010-05-07 14:13:45

1

如果您希望所有控件始终可用(用于数据共享),那么您需要按照Joel的建议进行操作。在语法上,不过,我会说,你可以把它容易得多,如果你相关的菜单项,你的控制Page_OnLoad()像这样里面:

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

希望有所帮助。