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 :

modifier user control master page depuis une page héritée


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 105
    Points : 72
    Points
    72
    Par défaut modifier user control master page depuis une page héritée
    Bonjour,

    Est-il possible de modifier un champs d'un control user qui est dans une page master à partir d'une page qui hérite de la page master ?

    Exemple :
    j'ai une masterpage MP1.master
    Dans cette page, j'ai un user control UC1.ascx
    Dans ce user control j'ai un asp:label que je souhaite mofidier en fonction des pages.
    Je crée une page Mypage.aspx qui hérite de la masterpage MP1.master
    Comment faire pour changer le texte du label depuis la page Mypage.aspx ?

    Cordialement.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 207
    Points : 191
    Points
    191
    Par défaut
    Tu peux simplement te créer des méthodes en code behind de ton usercontrol et y accéder à partir de la page en question même si celle-ci hérite d'une masterPage.

    exemple :

    code dans ton usercontrol
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public void SetLabelText(string text)
    {
         Label.Text = text;
    }
    code dans ta page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //En code aspx
    <prefix:tagname id="UserControl" runat="server" />
     
    //Dans le code behind
    protected void Page_Load(object sender, EventArgs e)
    {
        UserControl.SetLabelText = "MonText";
    }
    Tu peux utiliser l'évènement désiré pas obligé d'utiliser le page_load, mais c'est une facon comme une autre de pouvoir modifier la valeur souhaiter.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 105
    Points : 72
    Points
    72
    Par défaut
    Salut !

    Citation Envoyé par stroumfs Voir le message
    code dans ta page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //En code aspx
    <prefix:tagname id="UserControl" runat="server" />
     
    //Dans le code behind
    protected void Page_Load(object sender, EventArgs e)
    {
        UserControl.SetLabelText = "MonText";
    }
    Ceci est faisable à partir de la masterpage mais pas de la page héritée.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 207
    Points : 191
    Points
    191
    Par défaut
    Tu peux le faire à partir du master autant que de la page héritée la masterpage sert uniquement de template pour tes autres pages.

    Tu dois simplement faire un register de ton usercontrol dans ta page comme dans n'importe quel autre page. La seule différence c'est que tu n'a que ton content panel au lieu d'avoir tout les autres éléments de body et form de la page. La masterPage s'occupe de tout générer.

  5. #5
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 105
    Points : 72
    Points
    72
    Par défaut
    J'ai du mal à comprendre...
    En gros ce que tu me dis de faire c'est d'ajouter un @register et d'ajouter le <prefix:tagname...> dans la page héritée ?

    dans ca cas à quoi ca sert de le faire dans la masterpage ?

    voici le code de ma masterpage :
    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
     
    <%@ Master Language="VB" CodeFile="EC2MasterPage.master.vb" Inherits="EC2MasterPage" %>
    <%@ Register TagPrefix="EC2" TagName="BarreTitre" Src="~/BarreTitre.ascx" %>
     
    <head runat="server">
    </head>
    <body>
        <form id="form1" runat="server">
            <div id="header">
                <EC2:BarreTitre ID="BarreTitre1" runat="server" />
            </div>
            <div id="content">
                <h1>content</h1>
                <asp:ContentPlaceHolder ID="CPHcorps" runat="server">
                </asp:ContentPlaceHolder>
            </div>
        </form>
    </body>
    </html>
    et ce que j'ai dans ma page héritée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <%@ Page Language="VB" MasterPageFile="~/EC2MasterPage.master" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" title="Page sans titre" %>
     
    <asp:Content ID="Content2" ContentPlaceHolderID="CPHcorps" Runat="Server">
    </asp:Content>

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 207
    Points : 191
    Points
    191
    Par défaut
    Qu'est-ce que tu désires afficher dans ta barre titre? Tu peux effectivement appeler le contrôle dans les différentes pages où en as besoin par contre s'il s'agit d'afficher un élément en fonction de ta page tu peux utilser la méthode dans ta masterPage mais en spécifiant la valeur que tu désires afficher selon la page.

    Mais je ne crois pas que tu puisses passer des paramètres de ta master page à ta page comme d'un usercontrol à une page.

  7. #7
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 105
    Points : 72
    Points
    72
    Par défaut
    A priori, il n'est pas possible de faire référence à un user control d'une master page à partir d'une page héritée, même avec des propiétés ou des méthodes...

    Voici une solution qui fonctionne :
    Comment référencer le contenu de la page maître

    Merci pour ton aide stroumfs

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

Discussions similaires

  1. [WD-2010] Modifier un document Word 2010 depuis une page Web
    Par angees dans le forum Word
    Réponses: 3
    Dernier message: 03/02/2015, 15h13
  2. Réponses: 1
    Dernier message: 11/12/2009, 15h34
  3. [MySQL] Recherche depuis une page dans une base de données
    Par illidan05 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 27/07/2009, 00h04
  4. PostBack d'une page depuis une autre
    Par oclone dans le forum ASP.NET
    Réponses: 1
    Dernier message: 18/03/2009, 21h08
  5. Modifier metatags de la masterpage depuis une page
    Par aloisio11 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 24/10/2007, 14h39

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