在回发时未调用HierarchicalDataBoundControl.PerformDataBinding

时间:2010-04-22 06:44:38

标签: hierarchical-data databound-controls

我绑定到SiteMapDataSource(分层)。

我正在重写PerformDataBinding以从数据源中获取数据。

在页面加载时,一切都很好用。但是当我在页面的任何地方执行回发时,不会调用PerformDataBinding方法,实际上,不会渲染任何菜单项(未调用PerformDataBinding)。

1 个答案:

答案 0 :(得分: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(); };
        }
    }
相关问题