【问题标题】:ASP.Net TreeView with SiteMap is ignoring Node.Selected带有 SiteMap 的 ASP.Net TreeView 忽略 Node.Selected
【发布时间】:2011-06-10 23:34:11
【问题描述】:

我创建了一个绑定到 SiteMap 的 TreeView。效果很好。

<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);
}

但仍然没有选择节点。我的直觉告诉我这是错误的事件。

有什么帮助吗?

谢谢 // 杰瑞

【问题讨论】:

    标签: asp.net treeview sitemap selected treenode


    【解决方案1】:

    AbsolutePath 与 NavigateUrl 可能值得怀疑,一个是相对路径 (NavigateUrl),另一个顾名思义是绝对路径。如果你在调试模式下运行,你能看到这两个值确实是一样的吗?

    【讨论】:

    • 是的,他们匹配;我不认为是这样。
    【解决方案2】:

    嗯,这真的很烦人。我想我的问题的“技术”答案是它一直有效。然而,真正的问题是 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>
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    • 2022-12-07
    相关资源
    最近更新 更多