1

いくつかのページがあるプロジェクトがあります。私のマスターページには、ナビゲーション用のツリービューがあります。ツリービューはサイトマップ ファイルにリンクされています。

ノードは次のように構築されます。

--ノード (非表示)
-----NavPoint1
-----NavPoint2
-----NavPoint3

基本的に、最初のノードを非表示にして、そのリーフ ノードのみが表示されるようにしました。メニュー項目の 1 つで、管理者、ユーザー、ゲストなど、さまざまなユーザー ロールを使用できるようになりました。ビューは、管理者がアクセスした場合にのみ異なります。そのために、ツリー ノードの selectednodechanged イベントを実装したいと考えていました。しかし、それは発砲していないようで、何が間違っていたのかわかりません。

マスターページにあるツリーノードのマークアップは次のとおりです。

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

別のコントロールも使用したいと思いますが、これは本来よりも少し難しいようです...

4

0 に答える 0