2010-11-21 3 views
0

У меня есть таблица на моей странице asp.net, и я хочу вставить новые строки. Я пытаюсь добавить каждый щелчок на кнопке новой строки, содержащей ячейку с FileUpload, но она работает только для первого раза. Когда я нажимаю следующий раз, в моем коде за столом.Добавить новую строку в таблицу в код за проблемой

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

Это код на кнопку мыши

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); 
} 

Но проблема заключается в том, что всегда 2. Может ли кто-нибудь помочь?

ответ

1

Когда дело доходит до динамического контроля, вам нужно добавить их на каждый пост.

Вы выбираете обработчик событий, добавляя только самый новый файл, и вы не сохраняете предыдущие файлы в любом месте. Вы должны добавить их в ViewState и запросить ViewState для их получения.

См. this article Подробное описание ViewState.

Смежные вопросы