SiteMapDataSource (階層) にバインドしています。
データソースからデータを取得するために PerformDataBinding をオーバーライドしています。
ページの読み込み時にすべてがうまく機能します。しかし、ページのどこかでポストバックを実行すると、PerformDataBinding メソッドが呼び出されず、実際にはメニュー項目がレンダリングされません (PerformDataBinding は呼び出されませんでした)。
SiteMapDataSource (階層) にバインドしています。
データソースからデータを取得するために PerformDataBinding をオーバーライドしています。
ページの読み込み時にすべてがうまく機能します。しかし、ページのどこかでポストバックを実行すると、PerformDataBinding メソッドが呼び出されず、実際にはメニュー項目がレンダリングされません (PerformDataBinding は呼び出されませんでした)。
なぜこれが起こっているのか分かりませんが、私はそれを修正しています。驚くべきことに、私が見つけることができた 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(); };
}
}