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 :

Incrémentation dans UpdatePanel


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 7
    Par défaut Incrémentation dans UpdatePanel
    Bonjour à tous,

    Je cherche à réaliser un questionnaire qui « tourne » au fur et à mesure des réponses.

    Le problème, est que sur l’évènement OnClick de mon bouton (qui est sensé rafraîchir l’update panel) je parviens à afficher la msgbox contenu dans le pageload (normalement uniquement au chargement de la page nan ?), et donc que mon compteur se réinitialise…

    Un peu de code sera surement plus parlant :
    VB (behind)
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    Imports System.Data.Odbc
     
    Public Class quizz
     
        Inherits System.Web.UI.Page
        Dim DataTable As New DataTable
        Dim dtCount As New Integer
        Dim numQ As New Integer
     
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            MsgBox("REVIEN ICI ?")
            DataTable = initQuizz()
            dtCount = DataTable.Rows.Count
            numQ = 0
            If (dtCount > numQ) Then
                viewQuestion(DataTable, numQ)
            Else
                Response.Redirect("..\------------.aspx")
            End If
        End Sub
     
        Protected Sub btnSave_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnSave.Click
            numQ = numQ + 1
            viewQuestion(DataTable, numQ)
            MsgBox("numQ")
        End Sub
     
        Private Sub viewQuestion(ByVal dt As DataTable, ByVal i As Integer)
            lblQuestion.Text = dt.Rows(i).ItemArray(1)
            lblDescriQuestion.Text = dt.Rows(i).ItemArray(2)
        End Sub
     
        Function initQuizz()
           -> ici je vais ds ma BD et récup mes info (sa marche pas de pb)
        End Function
     
        'Private Function currentQuestion(ByVal numQ As Integer)
        'MsgBox("save des info courrant")
        'MsgBox(numQ)
        'If (numQ < dtCount) Then
        'numQ = numQ + 1
        'Return numQ
        'Else
        'MsgBox("fin du questionnaire")
        'End If
        'Return Nothing
        'End Function
    End Class
    ASP
    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
     
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="btnSave" />
            </Triggers>
            <ContentTemplate>
                <fieldset>
                    <legend> QUESTIONNAIRE</legend>
                    <hr />
                    <asp:Label ID="lblInfos" runat="server" Text="PréInfos"></asp:Label><br />
                    <asp:Label ID="lblQuestion" runat="server" Text="Question"></asp:Label><br />
                    <asp:Label ID="lblDescriQuestion" runat="server" Text="desc"></asp:Label><br />
                    <asp:RadioButton ID="RadioButton1" runat="server" />
                    <asp:RadioButton ID="RadioButton2" runat="server" />
                    <asp:RadioButton ID="RadioButton3" runat="server" />
                    <asp:RadioButton ID="RadioButton4" runat="server" /><br />        
                    <asp:TextBox ID="txtExplain" runat="server" Rows="5" style="margin-top: 0px"></asp:TextBox> <br /> 
     
                </fieldset>
            </ContentTemplate>
        </asp:UpdatePanel>
        <asp:Button ID="btnSave" runat="server" Text="save" />
        <asp:UpdateProgress ID="UpdateProgress1" runat="server">
            <ProgressTemplate>
                ...updating...
            </ProgressTemplate>
        </asp:UpdateProgress>
    (En gros j’affiche Q1 après je click sur « Save » et j’affiche Q2. Par la suite, mon compteur ne dépasse pas Q2 )

    Je ne comprends pas, peut-être que cela vient du fait que mon incrémentation se fait au sein d’une fonction et qu’elle est donc annulé à la fin de celle si… pourtant ma variable est déclaré en globale…

    Merci d’avance de vos réponses !

    Boulouk_22

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    C'est normal, numQ vaut 0 à chaque début de Postback.
    Stocke la valeur la dans les sessions.

    Il faut bien comprendre qu'a chaque fois toute ta classe est instanciée à nouveau donc tous tes variables membres de ta classe valent leurs valeurs initiales.

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 7
    Par défaut
    Dac dac merci !!!
    Donc voila, sa marche avec se code la (je le met au cas ou...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    numQ = Session("numQ")
            numQ = numQ + 1
            Session("numQ") = numQ
            viewQuestion(DataTable, numQ)
    merci PitMaverick

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

Discussions similaires

  1. Incrémenter dans un TLabel
    Par A0080 dans le forum Delphi
    Réponses: 11
    Dernier message: 20/02/2007, 15h25
  2. création champ incrémenté dans form
    Par nico86 dans le forum IHM
    Réponses: 1
    Dernier message: 26/11/2006, 15h22
  3. Champs virtuel auto incrémenté dans une vue
    Par berceker united dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/06/2006, 14h33
  4. Réponses: 3
    Dernier message: 27/11/2005, 20h57
  5. [batch] incrémentation dans une boucle for
    Par bart64 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 08/09/2004, 20h05

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