Asp.net treeview的selectednodechanged事件未激发

Asp.net treeview的selectednodechanged事件未激发,asp.net,events,treeview,Asp.net,Events,Treeview,我有一个项目,我有几页。在我的主页上,我有一个用于导航的树状视图。树视图链接到站点地图文件 节点的构建方式如下所示: -不可见 ---导航点1 ---导航点2 ---导航点3 基本上我已经使第一个节点不可见,所以只有它的叶节点可见。现在我有了不同的用户角色:admin、user、guest等。对于其中一个菜单项,只有当管理员访问它时,视图才会不同。为此,我想为树节点实现selectednodechanged事件。然而,它似乎没有开火,我不知道我做错了什么 以下是我在母版页中的treenode站点

我有一个项目,我有几页。在我的主页上,我有一个用于导航的树状视图。树视图链接到站点地图文件

节点的构建方式如下所示:

-不可见 ---导航点1 ---导航点2 ---导航点3

基本上我已经使第一个节点不可见,所以只有它的叶节点可见。现在我有了不同的用户角色:admin、user、guest等。对于其中一个菜单项,只有当管理员访问它时,视图才会不同。为此,我想为树节点实现selectednodechanged事件。然而,它似乎没有开火,我不知道我做错了什么

以下是我在母版页中的treenode站点的标记:

<asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1" NodeIndent="10" ImageSet="Simple"x OnSelectedNodeChanged="TreeView1_SelectedNodeChanged">
                        <HoverNodeStyle Font-Underline="False" Font-Bold="true" />
                        <NodeStyle Font-Names="Verdana" Font-Size="8pt" ForeColor="Black" HorizontalPadding="0px" NodeSpacing="0px" VerticalPadding="0px" />
                        <ParentNodeStyle Font-Bold="False" />
                        <SelectedNodeStyle Font-Bold="true" HorizontalPadding="0px" VerticalPadding="0px" />
                    </asp:TreeView>

我也愿意使用另一个控件,这似乎比它应该的要难一些…

也许你应该为不同的角色设置不同的站点地图,然后根据用户登录的角色绑定站点地图。不确定为什么要激发SelectedNodeChanged事件。您的事件应在单击时激发。我看到在你的OnSelectedNodeChange之前有一个x。验证这是否会导致任何问题。是的,我已将其删除,它来自我尝试的另一个事件。但它仍然不起作用。好了,伙计们,我已经放弃了这种方法。我现在在相应页面的页面加载事件中检查用户的角色。然后我根据用户的权限将控件设置为Vivisable或hidden。
<siteMapNode url="" title=""  description="">
        <siteMapNode url="Default.aspx" title="Home" description="" />
        <siteMapNode url="PersoenlicherKalender.aspx" title="Persönlicher Kalender" />
        <siteMapNode url="Gruppenkalender.aspx" title="Gruppenkalender"/>
        <siteMapNode url="DatenAendern.aspx" title="Daten ändern"/>
    </siteMapNode>
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
        {
            if (TreeView1.SelectedNode == TreeView1.Nodes[3])
            {
                if (Session["Benutzerart"] == Enums.BenutzerTypen.Benutzer.Administrator.ToString())
                { lblUser.Text = "Erfolg!"; }
            }
        }