我绑定到SiteMapDataSource(分层)。
我正在重写PerformDataBinding以从数据源中获取数据。
在页面加载时,一切都很好用。但是当我在页面的任何地方执行回发时,不会调用PerformDataBinding方法,实际上,不会渲染任何菜单项(未调用PerformDataBinding)。
答案 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(); };
}
}