带有站点地图的ASP.Net树状视图正在忽略节点。已选定

带有站点地图的ASP.Net树状视图正在忽略节点。已选定,asp.net,treeview,sitemap,selected,treenode,Asp.net,Treeview,Sitemap,Selected,Treenode,我创建了一个绑定到站点地图的树视图。它工作得很好 <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" /> <asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1"> </asp:TreeView> 但仍然没有选择节点。我的直觉告诉我这是错误的事件 有什么帮助吗 谢谢//Jerry绝对路径和

我创建了一个绑定到站点地图的树视图。它工作得很好

<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
<asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1">
</asp:TreeView>
但仍然没有选择节点。我的直觉告诉我这是错误的事件

有什么帮助吗


谢谢//Jerry

绝对路径和导航路径可能是可疑的,一个是相对路径NavigateUrl,另一个,顾名思义,是绝对路径。如果在调试模式下运行,您能看到这两个值确实是相同的吗?

嗯,这真的很烦人。我想我的问题的技术答案是,它一直都是有效的。然而,真正的问题是SelectedNodeStyle中的ImageUrl似乎被忽略了。我将再粘贴一点我的解决方案,以便您可以看到我拥有的内容,但无论我尝试什么,SelectedNodeStyle中的ImageUrl都将被忽略

PS:.Net4

<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
<asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1" ShowExpandCollapse="false">
    <NodeStyle ForeColor="White" Font-Bold="true" NodeSpacing="5" HorizontalPadding="5" 
        ImageUrl="~/Images/Page.png" />
    <SelectedNodeStyle Font-Bold="true" NodeSpacing="5" HorizontalPadding="5" Font-Underline="true" 
        ImageUrl="~/Images/Page_Hot.png"/>
    <HoverNodeStyle ForeColor="Navy" />
</asp:TreeView>

是的,他们匹配;我不认为是这样。也许这个问题所说的可能是相关的。检查节点是否设置为SelectExpand或Select。
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);
}
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
<asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1" ShowExpandCollapse="false">
    <NodeStyle ForeColor="White" Font-Bold="true" NodeSpacing="5" HorizontalPadding="5" 
        ImageUrl="~/Images/Page.png" />
    <SelectedNodeStyle Font-Bold="true" NodeSpacing="5" HorizontalPadding="5" Font-Underline="true" 
        ImageUrl="~/Images/Page_Hot.png"/>
    <HoverNodeStyle ForeColor="Navy" />
</asp:TreeView>