1

私はasp.netとc#で作業しています。マスター ページと、それを使用する多数の aspx ページがあります。

マスター ページには、順序付けられていないリスト (html) 内に定義されたメニューがあります。

page1がロードされたときに、aspxページの1つ(page1と呼びましょう)のマスターページからメニューを無効にできるようにしたいと考えています。

<ul class="menu" id="menu" runat ="server"> 
     <li>
         <a href="#" class="menulink">Mant</a>
             <ul> 
                 <li><a href="Mant.aspx">Table</a></li> 
            </ul> 
     </li> 
</ul>

どうやってやるの?

ありがとう。

4

4 に答える 4

3

マスター ページから無効にする場合はlist、マスター ページのLoadイベントでこのコードを使用できます。

    protected void Page_Load(object sender, EventArgs e)
    {
        if(ContentPlaceHolder1.Page.GetType().Name=="webform1_aspx")
        {
            ContentPlaceHolder1.Page.ClientScript.RegisterStartupScript(GetType(), "key", "javascript: document.getElementById('menu').style.visibility = 'hidden';", true);                
        }
    }

コンテンツページのロードイベントで使用したい場合は、これを使用してください

ClientScript.RegisterStartupScript(GetType(), "key", "javascript: document.getElementById('menu').style.visibility = 'hidden';",true);

そしてメニューはこんな感じ。

<ul id="listMenu" runat="server">
    <li></li>
</ul>
于 2012-10-12T15:23:36.993 に答える
1

次のようなコンテンツページからアクセスできます。

MasterPagename ms = Master as MasterPagename ;
ms.NavigatorMenu.Items[0].disabled = true;
于 2012-10-12T15:02:00.283 に答える
1

コンテンツプレースホルダーを使用できると思います:

元のマスター ページ:

追加:

<asp:contentplaceholder id="Menu" runat="server">
<!-- Menu here -->
</asp:contentplaceholder>

コンテンツ ページ (例では Page1) で、dont want to showメニューに次のタグを追加し、メニューを表示するすべてのコンテンツ ページからこれを削除します。

<asp:Content ID="menuContent1" ContentPlaceHolderID="Menu" Runat="Server">    
</asp:Content>
于 2012-10-12T15:06:02.823 に答える
0

コンテンツページでメニュー項目を検索し、pageload()で無効にするには

 protected void Page_Load(object sender, EventArgs e)
{


Menu mainMenu = (Menu)Page.Master.FindControl("NavigationMenu");

  foreach (MenuItem m in mainMenu.Items)
    {
        m.Enabled = false;
}

}
于 2013-01-03T06:26:57.973 に答える