在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了。
- 3 回答
- 0 关注
- 451 浏览
添加回答
举报
0/150
提交
取消
