为了账号安全,请及时绑定邮箱和手机立即绑定

如下情况,我每次添加都是把以前的覆盖了,不能在后面添加,请问是什么原因?

如下情况,我每次添加都是把以前的覆盖了,不能在后面添加,请问是什么原因?

POPMUISE 2022-04-07 19:15:07
在ASPX页面中添加了一个Table控件在Page_Load中添加了表的第一行:TableCell td;TableRow tr;protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){tr = new TableRow();td = new TableCell();td.Controls.Add(new LiteralControl("借据号"));tr.Cells.Add(td);td = new TableCell();td.Controls.Add(new LiteralControl("金额(万元)"));tr.Cells.Add(td);this.Table1.Rows.Add(tr);}}现在想在一个按钮函数中响应,点一次按钮就添加一行。protected void Button_Add_Click(object sender, EventArgs e){tr = new TableRow();td = new TableCell();td.Controls.Add(new LiteralControl(this.TextBox1.Text));tr.Cells.Add(td);td = new TableCell();td.Controls.Add(new LiteralControl(this.TextBox4.Text));tr.Cells.Add(td);this.Table1.Rows.Add(tr);}但是我每次添加都是把以前的覆盖了,不能在后面添加,不知道是什么原因呢?
查看完整描述

3 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

因为TABLE的初始状态只有一个 借据号 万元的表头,无论按钮怎么点,都只会触发一次Button_Add_Click,添加一行。以后每次点击,初始状态都只有表头,所以点击之后只会有一行。
所以要用一个东西把你的点击记录存储起来。你可以用VIEWSTATE来存这个TABLE变量,每次PAGE_LOAD的时候把它读出来,每次ONCLICK添加完行之后把TABLE存入VIEWSTATE,这样就OK了。不要随便用静态变量,它会产生一些很BUG的问题。
另外如果VIEWSTATE你觉得不好就用SESSION。总之,在每次POSTBACK后把TABLE存起来就OK了。

查看完整回答
反对 回复 2022-04-11
?
BIG阳

TA贡献1859条经验 获得超6个赞

tr = new TableRow();
td = new TableCell();
把这个写为全局变量应该就可以了

查看完整回答
反对 回复 2022-04-11
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

添加的方法错了
table1.Rows.AddRange(tr);

查看完整回答
反对 回复 2022-04-11
  • 3 回答
  • 0 关注
  • 451 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号