2010-04-22 4 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(); }; 
     } 
    } 
Смежные вопросы