我有两个母版页,一个是“基础”母版页,另一个是嵌套的母版页。
在我的 asp.net Web 应用程序的子文件夹中,嵌套母版页通过声明 -> MasterPageFile="~/Standard.Master" 来引用主“Standard.Master”。
我在基本母版页定义的占位符内使用子内容占位符,以托管使用嵌套母版页显示的页面的特定内容。
例子:
<asp:Content ContentPlaceHolderID="filter" runat="server">
<asp:ContentPlaceHolder runat="server" ID="filter"></asp:ContentPlaceHolder>
</asp:Content>
<asp:Content ContentPlaceHolderID="ContentPlaceHolderMain" runat="server">
<asp:ContentPlaceHolder runat="server" ID="ContentPlaceHolderMain">
</asp:ContentPlaceHolder>
内容占位符“过滤器”在Standard.Master中定义,包含用于选择当前页面参数的下拉菜单或其他控件,这是一个示例:
<asp:Content ContentPlaceHolderID="filter" runat="server">
<asp:CheckBox ID="weekCbx" runat="server" AutoPostBack="false" />
我有许多引用这些过滤器的对象数据源,如下所示:
<asp:ObjectDataSource ID="myDatasource" runat="server" TypeName="BusinessLogic.MyType"
SelectMethod="GetData"
<SelectParameters>
<asp:ControlParameter ControlID="filter$weekCbx" Name="weeks" PropertyName="Checked" />
</SelectParameters>
</asp:ObjectDataSource>
像这样引用 Standard.master中的contentplaceholder -> "filter$weekCbx"在嵌套页面中不起作用。错误是:在 ControlParameter 'weeks' 中找不到控件 'filter$weekCbx'。使用“filter$filter$weekCbx”不起作用。
如何从嵌套页面访问 Standard.Master 中“过滤器”占位符内的控件?
如果我必须将它移到后面的代码中,我可能每次都必须使用 FindControl 来访问 5-10 个过滤器。我想避免这种情况。