2011-02-01 7 views
1

私はちょっとした問題があります。 web.sitemapで定義された "ロール"との関連で、これらのasp:ハイパーリンクのいくつかをフィルタリングすることが可能かどうか疑問に思っていますか?例えばaspを使用した習慣:ハイパーリンクメニュー

 <ul id="topnav"> 
     <li>Dep 
      <span> 
       <asp:HyperLink Text="testing one" NavigateUrl="/DEP/ENC/Dep_Enc.aspx" runat="server">Encode </asp:HyperLink> 
       <asp:HyperLink Text="testing two" NavigateUrl="/DEP/ENC/Dep_Enc_D.aspx" runat="server">Nouveau contrat</asp:HyperLink> 

... 


    <siteMapNode > 
    <siteMapNode url="/DEP/Dep_Ac.aspx" title="Dép" > 
     <siteMapNode url="/DEP/ENC/Dep_Enc.aspx" roles="ALL" > 
     <siteMapNode url="/DEP/ENC/Dep_Enc_D.aspx" roles="ADMIN"/> 
... 

ので、それは、ユーザーが「管理者」でない場合は、テスト2を消えるように可能ですか? ありがとうございました..

答えて

1

と一緒にいつもrunat="server"属性を追加することができます。お使いの場合には、必要に応じて、あなたが<li>または<span>にこれを追加することができます。

<ul id="topnav"> 
    <li runat="server" id="adminLinks">Dep 
    <span> 
     <asp:HyperLink Text="testing one" NavigateUrl="/DEP/ENC/Dep_Enc.aspx" runat="server">Encode </asp:HyperLink> 
     <asp:HyperLink Text="testing two" NavigateUrl="/DEP/ENC/Dep_Enc_D.aspx" runat="server">Nouveau contrat</asp:HyperLink> 

... 

すると、背後にあるコードの中で、それを隠すためにVisibleプロパティを使用して(それもHTMLにレンダリングされません):

if (!User.IsInRole("Admin")) 
{ 
    adminLinks.Visible = false; 
} 
関連する問題