IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

visibilités de contrôles en code behind


Sujet :

ASP.NET

  1. #1
    Membre régulier Avatar de Nixar
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 302
    Points : 85
    Points
    85
    Par défaut visibilités de contrôles en code behind
    Bonjour,
    Pour mon site j'ai créé une masterpage qui contient un placeholder (pour mettre ce que je veux dans les pages héritées) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <%@ Master Language="C#" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head id="Head1" runat="server">
    <link rel="stylesheet" type="text/css" href="css/StyleSheet.css"/> <link />
        <title>...Arts Graphics...</title>
    </head>
    <body>
        <form id="form1" runat="server">
            <div class="bandeauTitre"></div>
            <div class="global">
                <div class="bandeauGauche" id="bandeauGauche" runat="server">
                </div>
                <div class="corps">
                    <asp:contentplaceholder id="Content1" runat="server">
                    </asp:contentplaceholder>
                </div>
                <div class="clear"></div>
                <div class="footer">
                    <center>
                        <a href="photos.aspx" class="lien">Photos</a>
                        <a href="musiques.aspx" class="lien">Musiques</a>
                        <a href="3d.aspx" class="lien">3D</a>
                        <a href="projets.aspx" class="lien">Projets</a>
                        <a href="javascript:OuvrirPopup('apropos.htm','','fullscreen=yes')" class="lien">A propos de ...</a>
                    </center>
                </div>
             </div>
        </form>
    </body>
    </html>
    J'ai donc créé une page qui hérite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Title="Untitled Page" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="Content1" Runat="Server">
    </asp:Content>
    mon problème vient du fait que malgré la balise "runat=server", je ne parviens pas à récupérer mon PlaceHolder dans mon code behind "default.aspx.cs.

    Quelle est mon erreur? Que dois-je rajouter afin de pouvoir gérer dynamiquement mon contrôle?

    Merci de vos réponses.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Septembre 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 60
    Points : 35
    Points
    35
    Par défaut
    As tu vérifié dans le fichier .designer.cs de ta masterpage que ton placeholder est bien déclaré en public ?
    Si oui, tu y as normalement access en faisant un Master.tonplaceholder

  3. #3
    Membre régulier Avatar de Nixar
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 302
    Points : 85
    Points
    85
    Par défaut
    Bonjour et merci de ta réponse,
    La solution est la suivante : on ne peut accéder directement à un ContentPlaceHolder d'une masterpage (il est déclaré protégé) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      ContentPlaceHolder CPHCorps;
            CPHCorps = (ContentPlaceHolder)Master.FindControl("Content1"); //on instancie un objet d'accès au contrôlé
            Label Construction = new Label();
            Construction.Text = "Bienvenue sur artsgraphics.fr. Ce site est actuellement en construction et sera disponible prochainement.";
            CPHCorps.Controls.Add(Construction);

  4. #4
    Membre expérimenté Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Points : 1 443
    Points
    1 443
    Par défaut
    et si tu faisais un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Placeholder ph = Page.Fincontrol("Content1") as PlaceHolder;
    il vaut mieux prendre son pied que de se prendre la tête!!

    http://bossun.noxblog.com

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 231
    Points : 165
    Points
    165
    Par défaut
    Tu peux accéder aux controls de ta MasterPage dans les ContentPage mais pourquoi veux tu accéder au ContentPlaceHolder ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Retracer et interagir en javascript avec un contrôle créé en code behind
    Par gabdeschenes dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/06/2009, 21h39
  2. Comment accéder à ce contrôle dans le code behind ?
    Par insane_80 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 02/04/2009, 13h34
  3. [Contrôles] Comment les créer dynamiquement en code-behind ?
    Par Finality dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 23/09/2008, 00h07
  4. Réponses: 4
    Dernier message: 14/06/2007, 12h00
  5. [VCL] Scroller un contrôle par code
    Par sbeu dans le forum Composants VCL
    Réponses: 3
    Dernier message: 31/03/2004, 10h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo