最近在做一个二次开发的.net项目,要实现一个功能,点击加号添加一行,点击确定提交数据。如下图所示:
刚开始很轻松的就实现了添加一行功能,代码如下:
<pre name="code" class="csharp">protected void addBtn_Click(object sender, EventArgs e)
{
if (ViewState["tdNum"] == null)
{
ViewState["tdNum"] = 1;
}
int tdNum = Convert.ToInt16(ViewState["tdNum"]);
for (int i = 1; i <= tdNum; i++)
{
TableRow row = new TableRow();
TableCell cell0 = new TableCell();
TextBox tb = new TextBox { ID = "txtName" + i + "", Width = Unit.Parse("60px") };
cell0.Controls.Add(tb);
row.Cells.Add(cell0);
......
}
}
每次点击添加按钮都会进行页面刷新,所以要用ViewState记录下行数,循环生成行。
恼人的是, 点击确定添加按钮总是会报错,意思就是说找不到动态生成的控件。
在网上找各种解决办法都没用。
大部分是用JS+JQuery实现的,跟我的情况不一样。
还有的是先输入行号,然后再生成行,不方便。
还有的说重写OnInit()方法
http://blog.csdn.net/w809026418/article/details/5732060
这个我试了一下,不管用。
无奈,自己发帖,有一位大神给解决了。
帖子的地址: