ASP.Net的TreeView与地图无视Node.Selected [英] ASP.Net TreeView with SiteMap is ignoring Node.Selected

查看:125
本文介绍了ASP.Net的TreeView与地图无视Node.Selected的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

创建绑定到一个网站地图一个TreeView。它的伟大工程。

I create have a TreeView bound to a SiteMap. It works great.

<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
<asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1">
</asp:TreeView>

现在我想改变所选节点的样子。

Now I want to change the way the selected node looks.

<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为什么,为什么?)。这不是世界的末端。所以,我创建了一个小code背后是这样的:

The thing is, the current page is not automatically selected on the tree (why MSFT, why?). This is not the end of the world. So, I created a little code behind like this:

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

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

But still the node is not selected. My gut tells me it's the wrong event.

任何帮助吗?

感谢//杰里

推荐答案

好了,这实在是烦人。我想技术回答我的问题是,它一直以来的工作。然而,真正的问题是,在的ImageUrl的SelectedNodeStyle似乎被忽略。我要贴多一点我的解决方案,所以你可以看到我有什么,但不管我怎么努力,在SelectedNodeStyle的ImageUrl被忽略。

Well, this is really annoying. I suppose the "technical" answer to my question is that it worked all along. However, the real issue is that ImageUrl in the SelectedNodeStyle appears to be ignored. I am going to paste a little more of my solution so you can see what I have, but no matter what I try, ImageUrl in the SelectedNodeStyle is ignored.

(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>

这篇关于ASP.Net的TreeView与地图无视Node.Selected的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆