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 :

Pb MasterPage et UpdatePanel


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    563
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 563
    Par défaut Pb MasterPage et UpdatePanel
    Salut!

    J'ai un problème en faisant un site en ASP .NET avec AJAX (Framework 3.5 - Visual Studio 2008) :

    J'ai créé une MasterPage AJAX avec dans le PlaceHolder, 2 zones UpdatePanel, l'un qui correspond au menu du site, l'autre au contenu général du site, en fonction de ce que j'ai à afficher. Le ScriptManager est aussi présent.

    Ensuite quand je fais un clic droit sur la MasterPage dans l'explorateur de solution, je choisis "Ajouter une page de contenu" pour pouvoir appliquer ce que j'ai mis dans la MasterPage sur une page web et là, dans la page de contenu, aucun UpdatePanel ! Que dalle ! Je ne peux pas non plus associer de page en créant une nouvelle WebForm, cocher un checkbox pour l'associer à la MasterPage comme sur ce tuto (plus à jour) :

    http://webman.developpez.com/article...et/masterpage/

    L'idéal serait de mettre aussi le menu dans un UpdatePanel dans la MasterPage mais comme le reste ne marche pas, il faut d'abord résoudre le 1er problème.

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    fais voir le code de ta masterpage

  3. #3
    Membre très actif Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    563
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 563
    Par défaut
    Y a rien dedans, le code que j'ai mis est dans la page web de contenu qui superpose la masterpage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    namespace WebSite
    {
        public partial class Site1 : System.Web.UI.MasterPage
        {
            protected void Page_Load(object sender, EventArgs e)
            {
     
            }
        }
    }
    et voilà le code de la page ASP au dessus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        public partial class WebForm1 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
     
                UpdatePanel updatePannelMenu = new UpdatePanel();
                UpdatePanel updatePanelContent = new UpdatePanel();
            }
        }
    Il suffit que je mette ces 2 lignes dans le Page_load de la masterpage ?
    Ou alors je dois faire hériter chaque page de mon site de cette masterpage ?

    Ça m'embrouille un peu là...

    EDIT : J'ai exécuté pas à pas un debug pour voir ce qu'il faisait et apparemment le Page_load de la masterpage exécute directement le Page_load de la page superposée. Pour tester un peu quelques trucs, notament la création de menus, j'ai créé une classe qui dérive de System.Web.UI.WebControls.Menu, je la dérive ensuite en sous classes pour permettre de faire un truc plus "modulaire", chacune des classes doit permettre d'afficher ensuite n'importe quel menu en fonction des éléments qu'il y a dans les sous classes.

    La création du menu est faite dans le page_load d'une page aspx exécutée au démarrage, le menu est bien créé mais rien ne s'affiche.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    c'était le code ASPX que je demandais, pas le code C#

  5. #5
    Membre très actif Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    563
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 563
    Par défaut
    Le voilà :

    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
     
    <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="WebAppAJAX1.Site1" %>
     
    <!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 runat="server">
        <title>Page sans titre</title>
        <asp:ContentPlaceHolder ID="head" runat="server">
        </asp:ContentPlaceHolder>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="scriptManager" runat="server" />
     
            <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
     
                <asp:UpdatePanel ID="UpdatePanelMenu" runat="server">
                </asp:UpdatePanel>
     
            <asp:UpdatePanel ID="UpdatePanelMainContent" runat="server">
            </asp:UpdatePanel>
     
            </asp:ContentPlaceHolder>
        </div>
        </form>
    </body>
    </html>

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    OK... quand tu fais une page de contenu, elle remplace le contenu du ContentPlaceHolder. Si tu veux avoir 2 parties sur ta page, chacune dans un UpdatePanel, il faut faire 2 ContentPLaceHolders que tu mets chacun dans un UpdatePanel (et non l'UpdatePanel dans le COntentPlaceHolder)

    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
    <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="WebAppAJAX1.Site1" %>
     
    <!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 runat="server">
        <title>Page sans titre</title>
        <asp:ContentPlaceHolder ID="head" runat="server">
        </asp:ContentPlaceHolder>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="scriptManager" runat="server" />
     
            <asp:UpdatePanel ID="UpdatePanelMenu" runat="server">
                <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
                </asp:ContentPlaceHolder>
            </asp:UpdatePanel>
     
            <asp:UpdatePanel ID="UpdatePanelMainContent" runat="server">
                <asp:ContentPlaceHolder ID="ContentPlaceHolder2">
                </asp:ContentPlaceHolder>
            </asp:UpdatePanel>
        </div>
        </form>
    </body>
    </html>

Discussions similaires

  1. MasterPage VS UpdatePanel + usercontrol
    Par smash dans le forum ASP.NET
    Réponses: 5
    Dernier message: 17/03/2011, 12h06
  2. UpdatePanel et MasterPage
    Par Sekigawa dans le forum ASP.NET
    Réponses: 1
    Dernier message: 28/04/2010, 09h53
  3. Réponses: 2
    Dernier message: 05/11/2008, 14h23
  4. Réponses: 2
    Dernier message: 24/03/2008, 16h03
  5. Réponses: 6
    Dernier message: 18/01/2008, 17h12

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