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

RemiBeginer Messages postés 2 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 20 mai 2008 - 20 mai 2008 à 11:24
yassinebennani Messages postés 249 Date d'inscription samedi 13 octobre 2007 Statut Membre Dernière intervention 2 mai 2014 - 21 mai 2008 à 00:45
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

RemiBeginer Messages postés 2 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 20 mai 2008
20 mai 2008 à 11:25
PS : n'y a t'il pas des balises [code] afin de struturer un peu le code ?
0
GillouXman Messages postés 561 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 10 juin 2010
20 mai 2008 à 16:37
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à ?
0
yassinebennani Messages postés 249 Date d'inscription samedi 13 octobre 2007 Statut Membre Dernière intervention 2 mai 2014
21 mai 2008 à 00:45
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)
0
Rejoignez-nous