2012-02-07 1 views
1

J'ai deux pages maîtres, l'une est la page principale "base" et l'autre est une page maître imbriquée .Contrôle d'accès dans masterpage à partir de la page maître imbriquée dans le balisage

Dans un sous-dossier de mon application Web asp.net, la page maître imbriquée fait référence au fichier principal "Standard.Master" en déclarant -> MasterPageFile = "~/Standard.Master". J'utilise des espaces réservés aux enfants dans les espaces réservés définis par la page de base, pour héberger un contenu spécifique pour les pages affichées à l'aide de la page maître imbriquée.

Exemple:

<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 "filtre" est défini dans le Standard.Master et contient des listes déroulantes ou d'autres commandes pour sélectionner les paramètres de la page en cours, voici un exemple:

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

J'ai beaucoup objectdatasources qui font référence à ces filtres comme ceci:

<asp:ObjectDataSource ID="myDatasource" runat="server" TypeName="BusinessLogic.MyType" 
    SelectMethod="GetData" 
    <SelectParameters>   
     <asp:ControlParameter ControlID="filter$weekCbx" Name="weeks" PropertyName="Checked" /> 
</SelectParameters> 
</asp:ObjectDataSource> 

référençant le ContentPlaceHolder dans Standard.master comme ce -> "Filtre weekCbx de $" ne fonctionne pas dans la page imbriquée. L'erreur est: Impossible de trouver le contrôle 'filter $ weekCbx' dans ControlParameter 'semaines'. L'utilisation de "filter $ filter $ weekCbx" ne fonctionnait pas.

Comment puis-je accéder aux contrôles à l'intérieur de l'espace réservé "filter" dans Standard.Master à partir de la page imbriquée?

Si je dois le déplacer vers le code derrière, je devrai probablement utiliser FindControl pour accéder à 5-10 filtres à chaque fois. Je voudrais éviter cela.

+0

Je déteste cette situation, mais cela fonctionne d'une manière ou d'une autre maintenant. Je ne suis pas sûr de ce qui manquait en premier lieu. Mais je peux maintenant filtrer $ filter $ weekCbx maintenant. Je n'aime pas le look, mais je dois utiliser beaucoup de FindControls si je ne le fais pas de cette façon. Et je ne vois pas d'alternative pour les pages maîtres imbriquées. –

Répondre

0

Vous pouvez accomplir cela en utilisant des pages maîtres typées Strong, vous pouvez trouver des informations dans Here et Here.

Je suggère que vous repensiez votre conception, peut-être quelques choses que vous pourriez changer là-bas si vous vous trouvez coincé faire ceci.

Bonne chance!

Questions connexes