2009-09-08 19 views
0

這是爲ASP.NET。考慮多視圖控件。它具有1到多個視圖控件。每個視圖控件都具有控件控件的功能,但是,一次只能看到一個視圖。如何停止加載子控件的Web控件?

記住這一點,我想我想「告訴」不可見視圖不加載,因此,不加載子控件。

在我的示例中,在視圖的加載期間,我檢查它是否是活動視圖。如果它沒有激活,那麼我停止處理負載。不幸的是,未激活的視圖仍然會運行加載事件,並且控制樹中的所有控件都會運行它們的加載。

回到問題:有沒有辦法阻止子控件運行不活動的視圖?

代碼示例:

Private Sub viewDisplayArticle_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles viewDisplayArticle.Load 

    If Not mvwHealthArticles.ActiveViewIndex = mvwHealthArticlesView.DisplayArticle Then Exit Sub 

    callSomeKillerMethod() 

End Sub 

回答

1

不可見的子控件的Visible屬性設置爲False,然後只運行在子控件的Load事件處理程序時,可見是真的。

Private Sub viewDisplayArticle_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles viewDisplayArticle.Load 

    If Visble = True 
    Then ' Load Logic 
    Else ' do nothing 

End Sub 
+0

好主意,但這是不允許特別處理System.Web.UI.WebControls.View。 System.InvalidOperationException:只能通過設置MultiView的活動視圖來設置View控件的Visible屬性。 – MADCookie 2009-09-08 20:52:21

+0

這很有趣。我可能會嘗試製作一個模板化的控件(如帶有等的GridView),因爲我從來沒有嘗試過MultiView控件......祝您好運! – jrummell 2009-09-08 21:07:07