Я создаю 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);
}
Но все равно узел не выбран. Моя интуиция говорит мне, что это неправильное событие.
Любая помощь?
Спасибо // Джерри