HierarchicalDataBoundControl.PerformDataBinding не вызывается при обратной передаче - PullRequest
2 голосов
/ 22 апреля 2010

Я привязываюсь к SiteMapDataSource (иерархически).

Я переопределяю PerformDataBinding, чтобы получить данные из источника данных.

Все отлично работает при загрузке страницы. Но когда я выполняю обратную передачу в любом месте на странице, метод PerformDataBinding не вызывается и, по сути, не отображает никаких пунктов меню (PerformDataBinding не вызывался).

1 Ответ

3 голосов
/ 27 апреля 2010

Понятия не имею, почему это происходит, но у меня есть решение для этого. Удивительно, но каждый пример 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(); };
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...