Utilisation placeholder

Signaler
Messages postés
52
Date d'inscription
lundi 5 janvier 2004
Statut
Membre
Dernière intervention
19 novembre 2013
-
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 :



<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>



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