2010-11-21 8 views
0

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

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

Ceci est le code sur le bouton cliquez

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 est toujours 2. Quelqu'un peut-il aider?

Répondre

1

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

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

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

Questions connexes