[英]Get element of nested master page from content page
我有一个母版页,一个嵌套母版页和一个内容页:Master(Site.master):
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
</head>
<body>
<form runat="server">
<asp:ScriptManager ID="ScriptManager" runat="server" />
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false"
IncludeStyleBlock="true" Orientation="Horizontal" RenderingMode="List">
<StaticSelectedStyle BackColor="LightBlue" BorderStyle="Solid" BorderColor="Black"
BorderWidth="1" />
<Items>
<asp:MenuItem NavigateUrl="~/xxx.aspx" Text="xxx" />
<asp:MenuItem NavigateUrl="~/xxx/xxx/xxx.aspx" Text="xxx" />
</Items>
</asp:Menu>
<div class="main">
<asp:ContentPlaceHolder ID="cuerpo" runat="server" />
</div>
</form>
</body>
</html>
嵌套母版页(mOperator.master)
<%@ Master Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="mOperator.master.cs"
Inherits="aplicacion_operadores_mOperador" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="cuerpo" runat="Server">
<div class="clear hideSkiplink" id="capaMenu">
<asp:Menu ID="subMenuOperator" runat="server" CssClass="menu" EnableViewState="false"
IncludeStyleBlock="true" Orientation="Vertical" RenderingMode="List">
<StaticSelectedStyle BackColor="LightBlue" BorderStyle="Solid" BorderColor="Black"
BorderWidth="1" />
<Items>
<asp:MenuItem NavigateUrl="~/yyyy.aspx" Text="yyy" />
<asp:MenuItem NavigateUrl="~/yyy/yyy/yyyy.aspx" Text="yyyy" />
</Items>
</asp:Menu>
</div>
<asp:ContentPlaceHolder ID="masterRight" runat="server">
</asp:ContentPlaceHolder>
</asp:Content>
内容页:
<%@ Page Title="" Language="C#" MasterPageFile="~/yyy/yyyy/mOperator.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="operators_Default" %>
<asp:Content ID="Content1" ContentPlaceHolderID="masterRight" Runat="Server">
</asp:Content>
现在,如果要从内容访问母版页菜单:
Menu miPrincipal = (Menu)Master.Master.FindControl("NavigationMenu");
miPrincipal.Items[1].Selected = true;
我成功获得了价值。 但...
如果要访问嵌套母版页菜单。 我正在这样尝试:
Menu miSecundario = (Menu)Master.FindControl("subMenuOperator");
miSecundario.Items[1].Selected = true;
但是给我空。
有任何想法吗?
试试这个
Menu mymenu = this.Page.Master.FindControl("cuerpo").FindControl("Content2").FindControl("subMenuOperator") as Menu;
我知道了:
Menu mymenu = this.Page.Master.Master.FindControl("cuerpo").FindControl("subMenuOperator") as Menu;
您应该使用强类型母版页
在母版页mOperator中,显示菜单:
public Menu SubMenuOperator
{
get
{
return this.subMenuOperator;
}
}
将主类型添加到内容页面
<%@ MasterType VirtualPath="~/mOperator.master" %>
然后您可以使用进入菜单:
Menu menu = this.Master.SubMenuOperator;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.