2009-09-08 5 views
0

이것은 ASP.NET 용입니다. 멀티 뷰 컨트롤에 대해 생각해보십시오. 그것은 1에서 많은 뷰 컨트롤을가집니다. 각 뷰 컨트롤은 컨트롤을 보유 할 수 있지만 한 번에 하나의 뷰만 볼 수 있습니다.웹 컨트롤에서 하위 컨트롤로드를 중지하는 방법은 무엇입니까?

염두에두고, 나는 보이지 않는 뷰가로드되지 않도록 "알려주고"따라서 자식 컨트롤을로드하지 않을 것이라고 생각하고 있습니다.

보기의로드 중에보기가 활성보기인지 확인합니다. 활성화되어 있지 않으면로드 처리가 중지됩니다. 아쉽게도 활성 상태가 아닌 뷰는로드 이벤트를 실행하고 컨트롤 트리의 모든 컨트롤은로드를 실행합니다.

질문으로 돌아 가기 : 활성화되지 않은보기에서 하위 컨트롤이 실행되지 않도록 할 수 있습니까?

코드 샘플 : False로 비 가시의 아이 컨트롤의 Visible 속성을 설정하고 표시에 해당하는 경우 만 자식 컨트롤의 Load 이벤트 핸들러를 실행

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

.

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 : View 컨트롤의 Visible 속성은 MultiView의 활성보기를 설정해야 설정할 수 있습니다. – MADCookie

+0

그건 재미 있어요. 나는 아마도 MultiView 컨트롤을 시도한 적이없는 템플릿 컨트롤 (예 : , 등의 GridView)을 만들려고합니다. 행운을 빌어 요! – jrummell

관련 문제