Bonjour,
J'écris une appli dans laquelle je dois permettre à l'utilisateur de saisir 1 à n lignes contituées comme suit :
2 textbox, 1 dropdownlist et un bouton de validation
Au 1er affichage, la page ne contient qu'une seule ligne avec les textbox vides.
L'utilisateur saisit les textbox, selectionne un item de la ddliste et clique sur le bouton de validation.
Sur le click de validation, je veux conserver les saisies déjà effectuées et générer une nouvelle ligne de saisie vierge avec les mêmes contrôles pour une nouvelle saisie éventuelle.
Pour celà, j'utilise un contrôle PlaceHolder et le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <asp:PlaceHolder ID="plhConditions" runat="server"> <asp:TextBox ID="txtDateDeb1" runat="server"></asp:TextBox> <asp:TextBox ID="txtDateFin1" runat="server"></asp:TextBox> <asp:DropDownList ID="ddlConditions1" runat="server"> </asp:DropDownList> <asp:Button ID="cmdValid1" runat="server" Text="Valider" /> </asp:PlaceHolder>
Code vb : 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 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load CType(Me.plhConditions.FindControl("ddlConditions1"), DropDownList).Items.Add("Condition 1") CType(Me.plhConditions.FindControl("ddlConditions1"), DropDownList).Items.Add("Condition 2") AddHandler CType(Me.plhConditions.FindControl("cmdValid1"), Button).Click, AddressOf subChange End Sub Public Sub subChange(ByVal sender As Object, ByVal e As System.EventArgs) Dim sID As String = (Convert.ToInt32(CType(sender, Button).ID.Substring("cmdValid".Length)) + 1).ToString Dim oTextBox1 As New TextBox oTextBox1.ID = "txtDateDeb" & sID Me.plhConditions.Controls.Add(oTextBox1) Dim oTextBox2 As New TextBox oTextBox2.ID = "txtDateFin" & sID Me.plhConditions.Controls.Add(oTextBox2) Dim oDDList As New DropDownList oDDList.ID = "ddlConditions" & sID oDDList.Items.Add("Condition 1") oDDList.Items.Add("Condition 2") Me.plhConditions.Controls.Add(oDDList) Dim oButton As New Button oButton.ID = "cmdValid" & sID oButton.Text = "Valider" Me.plhConditions.Controls.Add(oButton) AddHandler oButton.Click, AddressOf subChange End Sub
Le pb est que sur le click de validation , le PlaceHolder ne conserve pas les contrôles précédents !!!
Quelqu'un a une idée ?
Merci pour vos réponses
Partager