TreeView を SiteMap にバインドして作成します。それはうまくいきます。
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
<asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1">
</asp:TreeView>
ここで、選択したノードの外観を変更したいと考えています。
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
<asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1">
<NodeStyle ImageUrl="~/Images/Page.png" />
<SelectedNodeStyle ImageUrl="~/Images/Page_Hot.png" />
</asp:TreeView>
問題は、現在のページがツリーで自動的に選択されないことです (なぜ MSFT なのか?)。これは世界の終わりではありません。そこで、次のような小さなコード ビハインドを作成しました。
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
return;
TreeView1.TreeNodeDataBound += new TreeNodeEventHandler(TreeView1_TreeNodeDataBound);
}
void TreeView1_TreeNodeDataBound(object sender, TreeNodeEventArgs e)
{
var _CurrentUrl = Request.Url.AbsolutePath;
e.Node.Selected = (e.Node.NavigateUrl == _CurrentUrl);
}
しかし、まだノードは選択されていません。私の腸は、それは間違った出来事だと言っています。
何か助けはありますか?
ありがとう//ジェリー