/ / Ajouter une nouvelle ligne dans la table dans le code derrière le problème - asp.net

Ajouter une nouvelle ligne dans la table dans le code derrière le problème - asp.net

J'ai la table sur mon asp.net page, et je veux insérer de nouvelles lignes.J'essaie d'ajouter à chaque clic sur le bouton nouvelle ligne qui contient une cellule avec FileUpload, mais cela ne fonctionne que pour la première fois. Quand je clique la prochaine fois, dans mon code derrière la table.

    <asp:Panel ID="pnlImages" runat="server" BackColor="Gray" Height="500">
<table id="tblImages" runat="server" width="100%">
<tr>
<td>
<asp:FileUpload ID="FileUpload1" runat="server" />
</td>
</tr>
<tr>
<td align="right" width="100">
<asp:ImageButton ID="imbAddImage" runat="server" ImageUrl="images/plus.png"
Width="48" Height="48"  OnClick="imbAddImage_Click"/>
</td>
</tr>
</table>
</asp:Panel>

C'est le code sur le clic du bouton

protected void imbAddImage_Click(object sender, ImageClickEventArgs e)
{
System.Web.UI.HtmlControls.HtmlTable tbl = (System.Web.UI.HtmlControls.HtmlTable)this.FindControl("tblImages");
System.Web.UI.HtmlControls.HtmlTableRow row = new System.Web.UI.HtmlControls.HtmlTableRow();
System.Web.UI.HtmlControls.HtmlTableCell cell = new System.Web.UI.HtmlControls.HtmlTableCell();
FileUpload temp = new FileUpload();
cell.Controls.Add(temp);
row.Controls.Add(cell); ;
int a=tbl.Controls.Count;
tbl.Controls.AddAt(a-1, row);
}

Mais le problème est que a est toujours 2. Quelqu'un peut-il aider?

Réponses:

1 pour la réponse № 1

En ce qui concerne les contrôles dynamiques, vous devez les ajouter à chaque publication.

Vous cliquez sur le gestionnaire d'événements ajoute uniquement le fichier le plus récent et vous n'enregistrez les fichiers précédents nulle part. Vous devez les ajouter à ViewState et interroger ViewState pour les récupérer.

Voir Cet article Pour une explication détaillée de ViewState.