[ASP.NET] Probleme de postback (je crois... :S)

Signaler
Messages postés
2
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
20 mai 2008
-
Messages postés
249
Date d'inscription
samedi 13 octobre 2007
Statut
Membre
Dernière intervention
2 mai 2014
-
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.

<%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="index.aspx.vb" Inherits="_Default" title="Untitled Page" %>

[<%= Request.ApplicationPath %>/index.aspx?pages=employe Employé]
                </li><li>[<%= Request.ApplicationPath %>/index.aspx?pages=compta COMPTA]</li><li>[<%= Request.ApplicationPath %>/index.aspx?pages=responsable Responsable de service]</li>
       

       
       

           
                <li>Utilisateur  : <%= Session("login") %> | </li>
                <li> <%= Now().ToString() %> | </li>
                <li> </li>
               
       

      
       

           

           

           

                BODY BODY BODY BODY BODY BODY BODY BODY

                BODY BODY BODY BODY BODY BODY BODY BODY

                BODY BODY BODY BODY BODY BODY BODY BODY
     
       

 

<hr size="2" width="100%" />
Je vais également vous montrer le code vb de cette même page :

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

<hr size="2" width="100%" />
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

3 réponses

Messages postés
2
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
20 mai 2008

PS : n'y a t'il pas des balises [code] afin de struturer un peu le code ?
Messages postés
561
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
10 juin 2010

ca c'est normal que le i sera chaque fois égal à 0, tu l'a mis en global.

pour ce qui est du page load, as tu fait du debug pour voir si il passait par là ?
Messages postés
249
Date d'inscription
samedi 13 octobre 2007
Statut
Membre
Dernière intervention
2 mai 2014

tu peux laisser ta variable global y'a aucun souci mais aprés l'incrémentation de i dans l'évenement button1 click sauvegarde la dans le viewstate et utilise la propriéte postback dans la page_load pour vérifier si c'est le premier chargement de la page
dans ce cas utilise ta variable globale sinon si c'est un deuxième chargement ne l'utilise ps mais cherche celle qui est stocké sur le viewstat et ajoute la dans ta listebox. 
Les fins justifient les moyens_________________________________________________
Yassine BENNANI - Ingénieur en génie logiciel & multimédia (Consultant SI)