champs de formulaire dynamiques
Bonjour,
j'ai créé un panel dans lequel j'ajoute des champs de formulaire dynamiquement.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
<asp:Panel ID="PanelChampForm" CssClass="DivPopUp2" Width="500px" runat="server" Visible="false">
<asp:ImageButton ID="ImageCloseChampForm" ImageUrl="~/img/x.gif" runat="server" Style="float: right;" OnClick="ImageCloseChampForm_Click" />
<asp:Label ID="lblTitreChampForm" runat="server" Style="font-size: 15px; font-weight: 900; color: #FF9A00; padding-left:160px;" Text="Gestion Champs Formulaire"></asp:Label>
<br class="clear" />
<asp:LinkButton ID="linkAddChamp" runat="server" OnClick="AddChamp_Click" Style="text-decoration: none; color: #000; padding-left:190px;">Ajouter un champ :
<asp:Image runat="server" ID="imgAddChamp" ImageUrl="~/img/+_bb.gif" />
</asp:LinkButton>
<br />
<asp:HiddenField ID="hiddenNbChamps" runat="server" />
<div id="divChampsAjoutes" style="padding-left:200px;" runat="server">
</div>
<br />
<asp:ImageButton ID="imgbValiderChampForm" ImageUrl="~/img/Valider_bb.jpg" runat="server" style="padding-left:220px;" OnClick="ValiderChampForm_Click" />
</asp:Panel> |
Lors du chargement du panel, la méthode LoadChampFormExistant est appelé pour construire des champs input.
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
|
protected void LoadChampFormExistant()
{
int champs_count = 0;
//on ajoute les input si ChampsFormulaire != ""
if (tbChampsFormulaire.Text != "")
{
//on parse les differents champs
string[] listChamps = tbChampsFormulaire.Text.Split(';');
foreach (string elt in listChamps)
{
champs_count++;
//on creer les input
divChampsAjoutes.InnerHtml += "<br/><input type=\"text\" name=\"tbChampAdd_" + champs_count + "\" value=\"" + elt + "\" class=\"champs\"/><br/>";
}
}
if (champs_count > 0)
imgbValiderChampForm.Visible = true;
hiddenNbChamps.Value = champs_count.ToString();
} |
Ensuite, lorsque j'appuie sur le bouton pour ajouter un champ, la méthode AddChamp_Click est appelée.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
protected void AddChamp_Click(object sender, EventArgs e)
{
int champs_count = Convert.ToInt32(hiddenNbChamps.Value);
champs_count++;
divChampsAjoutes.InnerHtml += "<br/><input type=\"text\" name=\"tbChampAdd_" + champs_count + "\" class=\"champs\" /><br/>";
hiddenNbChamps.Value = champs_count.ToString();
imgbValiderChampForm.Visible = true;
} |
Lors de l'appui sur ajouter, un input est ajouté au panel, je le remplis.
Lors du second appui, un second input est créé mais la valeur que j'avais saisie dans le premier à disparue.
Ma question, comment sauvegarder les valeurs des inputs à chaque appui sur ajouter.
J'espère que mes explications sont claires.
Merci d'avance.