主页中的访问控制来自标记中的嵌套母版页

时间:2012-02-07 12:55:57

标签: asp.net nested master-pages contentplaceholder

我有两个主页,一个是“基础”主页,另一个是嵌套主页

在我的asp.net网络应用程序的子文件夹中,嵌套母版页通过声明 - >引用主“Standard.Master”。的MasterPageFile = “〜/ Standard.Master”。

我在base-Masterpage定义的占位符中使用child-contentplaceholders来托管使用嵌套母版页显示的页面的特定内容。

示例:

<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>

contentplaceholder“过滤器”在 Standard.Master 中定义,并包含用于选择当前页面参数的下拉列表或其他控件,这是一个示例:

<asp:Content ContentPlaceHolderID="filter" runat="server"> 
   <asp:CheckBox ID="weekCbx" runat="server" AutoPostBack="false" />

我有很多objectdatasources引用这些过滤器:

<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,如下所示 - &gt; “filter $ weekCbx”在嵌套页面中不起作用。错误是:无法在ControlParameter'周'中找到控件'filter $ weekCbx'。使用“filter $ filter $ weekCbx”不起作用。

如何从嵌套页面访问Standard.Master中“filter”占位符内的控件?

如果我必须将它移到后面的代码中,我可能每次都必须使用FindControl来访问5-10个过滤器。我想避免这种情况。

1 个答案:

答案 0 :(得分:0)

您可以使用强类型母版页完成此操作,您可以在HereHere中找到相关信息。

我建议你重新考虑你的设计,如果你发现自己被困在那里,也许你可以改变一些事情。

祝你好运!