treeview的selectednodechanged事件不会触发

时间:2013-03-13 10:24:47

标签: asp.net events treeview

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

节点的构建方式如下:

- 节点(不可见)
----- NavPoint1
----- NavPoint2
----- NavPoint3

所以基本上我已经使第一个节点不可见,所以只有它的叶子节点是可见的。现在我有一个不同的用户角色: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>

这是我的站点地图文件:

<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!"; }
            }
        }

我也愿意使用另一种控制,看起来这比它应该更难......

0 个答案:

没有答案