2010-11-21 129 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的詳細說明。

相關問題