我遇到过以下博客中的JavaScript动态添加或删除HTML表格行:
http://viralpatel.net/blogs/2009/03/dynamically-add-remove-rows-in-html-table-using-javascript.html
我的目标是让一个ASP.NET FileUpload控件供用户上传图像,然后图像名称将在表行上动态显示,该表应该从上面的JavaScript生成。
问题是每次添加图片时,回发都会导致HTML表格消失,如何将HTML表存储在某个地方?
我确实考虑使用StringBuild类从代码后面附加HTML表格,但删除行会有问题。
任何更好的解决方法来实现这一目标?请发表你的评论。
先谢谢你。
答案 0 :(得分:2)
ASP.NET FileUpload控件不是很灵活,并且有更多最新的方法来处理文件上传。有一个很棒的jQuery文件上传插件,如果我能正确理解你的问题,那就完全符合你的要求:http://blueimp.github.com/jQuery-File-Upload/
答案 1 :(得分:1)
您需要确保生成并插入动态控件的代码在每个页面回发后运行。只要您执行此操作,ViewState将确保在回发后保留输入到动态控件中的值。
答案 2 :(得分:1)
这是一个使用文字控件的简单模型。
<强> ASPX 强>
<asp:Literal ID="lbl1" runat="server"></asp:Literal>
<br />
<br />
<asp:Button ID=btnAdd runat=server Text="Simulate Upload Complete()" onclick="btnAdd_Click" />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<强> CS 强>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
lbl1.Text = "<table>";
lbl1.Text += "<tr>";
lbl1.Text += "<td>Row1</td>";
lbl1.Text += "</tr>";
lbl1.Text += "<tr>";
lbl1.Text += "<td>Row2</td>";
lbl1.Text += "</tr>";
lbl1.Text += "</table>";
}
}
protected void btnAdd_Click(object sender, EventArgs e)
{
lbl1.Text = lbl1.Text.Replace("</table>", string.Empty);
lbl1.Text += string.Format("<tr><td>{0}</td></tr>", TextBox1.Text);
lbl1.Text += "</table>";
TextBox1.Text = string.Empty;
}