在代码中添加新行代码
问题描述:
我在我的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。任何人可以帮助?
答
当谈到动态控件时,您需要在每个回贴中添加它们。
您单击事件处理程序只添加最新的文件,并且您不保存以前的任何地方。您应该将它们添加到ViewState并查询ViewState以检索它们。
请参阅this article有关ViewState的详细说明。