У меня есть две мастер-страницы, одна - «базовая», а другая - вложенная мастер-страница .
В подпапке моего веб-приложения asp.net вложенная главная страница ссылается на основной «Standard.Master», объявив -> MasterPageFile = "~ / Standard.Master".
Я использую дочерние заполнители содержимого внутри заполнителей, определенных base-Masterpage, для размещения определенного контента для страниц, отображаемых с использованием вложенной главной страницы.
Пример:
<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>
Заполнитель содержимого "filter" определен в 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 выглядит следующим образом -> "filter $ weekCbx" не работает на вложенной странице. Ошибка: Не удалось найти элемент управления «фильтр $ weekCbx» в ControlParameter «недели». Использование «filter $ filter $ weekCbx» не сработало.
Как получить доступ к элементам управления внутри заполнителя-фильтра в Standard.Master со вложенной страницы?
Если мне нужно переместить его в код позади, мне, вероятно, придется использовать FindControl для доступа к 5-10 фильтрам каждый раз. Я бы хотел этого избежать.