在代码隐藏问题的表中添加新行

时间:2010-11-21 12:45:54

标签: asp.net

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

但问题是a总是2.可以有人帮忙吗?

1 个答案:

答案 0 :(得分:1)

说到动态控件,你需要在每个帖子上添加它们。

您单击事件处理程序仅添加最新文件,而您不会将以前的文件保存在任何位置。您应该将它们添加到ViewState并查询ViewState以检索它们。

有关ViewState的详细说明,请参阅this article