2010-04-22 3 views
2

SiteMapDataSource (계층 적)에 바인딩됩니다.HierarchicalDataBoundControl.PerformDataBinding이 포스트 백에서 호출되지 않습니다.

데이터 소스에서 데이터를 가져 오려면 PerformDataBinding을 무시합니다.

모든 것이 페이지로드시 잘 작동합니다. 그러나 페이지에서 아무 곳이나 다시 게시를 수행하면 PerformDataBinding 메서드가 호출되지 않고 사실상 메뉴 항목이 렌더링되지 않습니다 (PerformDataBinding이 호출되지 않음).

답변

3

왜 이런 일이 발생하고 있는지 전혀 모르겠지만 해결 방법이 있습니다. 놀랍게도, HierarchicalDataBoundControl의 모든 예제 (msdn에서조차도)가이 작업을 수행하고있었습니다. 그러나 여기에 해결 방법이 있습니다.

private bool dataBound = false; 
    protected override void OnInit(EventArgs e) 
    { 
     base.OnInit(e); 
     if (this.Page.IsPostBack) 
     { 
      this.DataBound += delegate { dataBound = true; }; 
      this.Page.Load += delegate { if (!dataBound) DataBind(); }; 
     } 
    } 
관련 문제