Контроль доступа на главной странице из вложенной главной страницы в разметке - PullRequest
1 голос
/ 07 февраля 2012

У меня есть две мастер-страницы, одна - «базовая», а другая - вложенная мастер-страница .

В подпапке моего веб-приложения 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 фильтрам каждый раз. Я бы хотел этого избежать.

1 Ответ

0 голосов
/ 07 февраля 2012

Вы можете сделать это с помощью строго типизированных мастер-страниц, вы можете найти информацию в Здесь и Здесь .

Я бы посоветовал вам переосмыслить свой дизайн, возможно, пара вещей, которые вы могли бы изменить там, если застряли в этом.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...