标记中从嵌套主页访问控制

问题描述:

我有两个主页,一个是“基本”主页面,另一个是嵌套主页面标记中从嵌套主页访问控制

在我的asp.net web应用程序的子文件夹中,嵌套的masterpage通过声明 - > 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> 

的的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这样- > “过滤器$ weekCbx”没有在嵌套页工作。错误是:找不到在ControlParameter“周”控制“过滤器$ weekCbx”。使用“filter $ filter $ weekCbx”不起作用。

如何我能到里面从嵌套页面Standard.Master“过滤器”占位符的控制?

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

+0

我讨厌这种情况,但它在某种程度上确实现在的工作。我不确定首先失去了什么。但我现在可以过滤$ filter $ weekCbx。我不喜欢它的外观,但我需要使用大量FindControls的,如果我不这样做,这样一来。我没有看到嵌套母版页的替代方案。 – 2012-02-10 13:15:24

您可以使用Strong typed Master Pages完成此操作,您可以在HereHere中找到相关信息。

我建议你重新考虑你的设计,也许几件事情你可以改变那里,如果你发现自己坚持做这个。

祝你好运!