从c#中的内容页面访问母版页控件

时间:2014-07-29 07:57:58

标签: asp.net master-pages submenu

我的菜单如下:

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

在主页加载时,我想根据访问权限禁用mant子菜单。 有没有办法在页面加载时实现这一点。

2 个答案:

答案 0 :(得分:0)

在Page_Load事件处理程序中需要这样的东西:

Menu MasterPageMenu = (Menu)this.Master.FindControl("menu");

foreach (MenuItem mi in MasterPageMenu.Items[0].ChildItems)
{
    //Do your logic.
}

答案 1 :(得分:0)

在主页代码隐藏类中提供公共方法ShowMant(bool show)。将内容页面的Master属性转换为主文件的实际类型并调用该方法。您需要让li runat=server在该方法的服务器端访问它。

类似的东西(我不知道你的意思是什么&#34;根据访问权限禁用mant子菜单&#34;):

public void ShowMant(bool show)
{
    if(show)
        mant.Attributes["class"] = "showMantClass";
    else
        mant.Attributes["class"] = "hideMantClass";
}

您以这种方式使用它(在内容页面中):

var myMaster = this.Master as MyMasterType;
if(myMaster != null)
    myMaster.ShowMant(false);