代码之家  ›  专栏  ›  技术社区  ›  Paul Knopf

回发时未调用HierarchicalDataboundControl.PerformDataBinding

  •  2
  • Paul Knopf  · 技术社区  · 14 年前

    我绑定到一个sitemapdatasource(分层)。

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

    页面加载时一切正常。但是当我在页面的任何地方执行回发时,performDataBinding方法都不会被调用,实际上,也不会呈现任何菜单项(performDataBinding没有被调用)。

    1 回复  |  直到 12 年前
        1
  •  3
  •   Paul Knopf    14 年前

    不知道为什么会这样,但我有办法。令人惊讶的是,我能找到的每一个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(); };
            }
        }