2010-05-07 50 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; 

希望有所幫助。