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…
8O 8O 8O
Un peu de code sera surement plus parlant ;) :
VB (behind)
Code:
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:
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…:calim2:
Merci d’avance de vos réponses !
Boulouk_22