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 :

Problème de PostBack


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 19
    Par défaut Problème de PostBack
    Bonjour,

    Je suis débutant en ASP.net et malgrès avoir lu quelques bouquins ainsi que consulté votre forum à la recherche d'une solution je me trouve bloqué depuis plus de 24h sur ce problème.

    Je pensais avoir saisie comment marche les evenements, mais je dois me resoudre à admettre que j'ai du passer à côté de quelques chose.

    En gros voilà mon problème. Je veux faire un moteur de template pour avoir un site dynamique en ASP.net, donc pour cela j'ai procédé à des tests de faisabilité en essayant de transmettre des variables banales d'une page à l'autre.
    Cela fonctionne très bien pour les "Request.QueryString("mavariable")" mais beaucoup moins bien dès que j'essaye de les faire passer en postback.

    Mon site est articulé de la manière suivante :
    J'ai une master page qui contient 2 contentplaceholder et 2 pages pour l'instant (page de login et page index).

    Je vais vous montrer le code de ma page index.

    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
    <%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="index.aspx.vb" Inherits="_Default" title="Untitled Page" %>
     
    <asp:Content ID="lesMenus" ContentPlaceHolderID="CPH_menu" Runat="Server">
            <div id="topMenu" style="right: 0px; top: 59px">
                <ul>
                    <li><a id="m1" href="<%= Request.ApplicationPath %>/index.aspx?pages=employe">Employé</a>
                    </li><li><a id="m2" href="<%= Request.ApplicationPath %>/index.aspx?pages=compta">COMPTA</a></li><li><a id="m3" href="<%= Request.ApplicationPath %>/index.aspx?pages=responsable">Responsable de service</a></li></ul>
            </div>
     
            <div id="miniMenu">
                <ul>
                    <li>Utilisateur  : <%= Session("login") %> | </li>
                    <li> <%= Now().ToString() %> | </li>
                    <li><asp:LoginStatus ID="LoginStatus1" runat="server" /> </li>
                </ul>   
            </div>
    </asp:Content>
     
    <asp:Content ID="body" ContentPlaceHolderID="CPH_body" Runat="Server">      
            <div id="pbody">
                <asp:ListBox ID="ListBox1" runat="server" Width="372px" AutoPostBack="True"></asp:ListBox><br />
                <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><br />
                <asp:Button ID="Button1" runat="server" Text="Button" /><br/>
                    BODY BODY BODY BODY BODY BODY BODY BODY <br/>
                    BODY BODY BODY BODY BODY BODY BODY BODY <br/>
                    BODY BODY BODY BODY BODY BODY BODY BODY <br/>     
            </div>
     
    </asp:Content>

    Je vais également vous montrer le code vb de cette même page :

    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
    Partial Class _Default
        Inherits System.Web.UI.Page
     
        Public i As Integer = 0
     
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Label1.Text = Request.QueryString("pages") & " " & i
            ListBox1.Items.Add(Me.i)
            Me.i = Me.i + 1
        End Sub
     
        Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
            Response.Redirect(Request.Url.PathAndQuery)
            Me.i = Me.i + 1
        End Sub
    End Class
    Le problème c'est que ma variable "i" reste invariablement à 0 et que ma listbox ne se remplie qu'une seule fois alors quelle devrait grandir à chaque fois que je recharge la page.
    J'ai l'impression que mon evenemenet page_load ne fonctionne qu'une seule fois...

    Est ce que vous auriez l'obligeance d'éclairer ma lanterne s'il vous plait ?
    En vous remerciant d'avance...
    Cordialement
    Rémi

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Si j'ai bien compris ton code, tu ne pourras pas incrémenter ta variable en procédant de la sorte.
    En effet, à chaque fois que tu fais un postback, tu reinitialises ta page et par conséquent les valeurs de tes variables si bien qu'après plusieurs postback ta variable I reste à 0, sa valeur initiale.

    Je te conseille de jeter un coup d'oeil du côté de la session ou du viewstate, deux élèments qui te permettront de gérer la persistance des données.

  3. #3
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par calagan99 Voir le message
    Si j'ai bien compris ton code, tu ne pourras pas incrémenter ta variable en procédant de la sorte.
    En effet, à chaque fois que tu fais un postback, tu reinitialises ta page et par conséquent les valeurs de tes variables si bien qu'après plusieurs postback ta variable I reste à 0, sa valeur initiale.

    Je te conseille de jeter un coup d'oeil du côté de la session ou du viewstate, deux élèments qui te permettront de gérer la persistance des données.
    Le ViewState est propre à chaque page.
    Donc si tu veux "mémoriser" la valeur de i entre différentes pages, c'est la session qu'il faut utiliser

  4. #4
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    MEA MAXIMA CULPA, tu as complétement raison, je n'ai pas réfléchi en parlant du viewstate.

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Par défaut
    en asp.net les variables sont reinitialiser a chaque publication de la page,donc il faut toujours garder les variables (les valeurs des variables), pour cette raison,il y'a une collection qui est visible par tous les pages de l'application, cette collection travail avec l'esprit de cle,valeur.
    la collection s'appelle application.

    application("i")=i ,pour garder la variable avec sa valeur.
    i=application("i") ,pour i recoi la valeur.

  6. #6
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 19
    Par défaut
    Merci beaucoup pour vos réponses, elles ont grandement éclairé ma lanterne

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

Discussions similaires

  1. Problème de postback ?
    Par Ashura95 dans le forum ASP.NET
    Réponses: 9
    Dernier message: 10/12/2009, 12h25
  2. Problème IE & PostBack sur site asp.net déployé
    Par 3KyNoX dans le forum ASP.NET
    Réponses: 0
    Dernier message: 23/06/2009, 10h52
  3. Template control : Problème de PostBack
    Par Worldofdada dans le forum ASP.NET
    Réponses: 4
    Dernier message: 04/03/2009, 17h27
  4. Problème de postback
    Par soso78 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 11/12/2008, 15h00
  5. Treeview problème sur postback
    Par RENO184 dans le forum C#
    Réponses: 0
    Dernier message: 17/11/2008, 12h31

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