我写的程序是这样的,其中TempTable是一个全局变量,以下为响应一次按钮点击的程序 DataRow TempNewRow; TempNewRow = TempTable.NewRow();
TempNewRow["商品项号"]=TextBox14.Text;
TempNewRow["仓储代码"]=TextBox15.Text;
TempNewRow["商品名称"]=TextBox16.Text;
TempTable.Rows.Add(TempNewRow); DataGrid1.DataBind();
第一次点击按钮,能成功添加一行数据,再点击按钮,却不会再添加一行新的,而是修改第一次添加那行,怎么回事??????大家教教我!!!
TempNewRow["商品项号"]=TextBox14.Text;
TempNewRow["仓储代码"]=TextBox15.Text;
TempNewRow["商品名称"]=TextBox16.Text;
TempTable.Rows.Add(TempNewRow); DataGrid1.DataBind();
第一次点击按钮,能成功添加一行数据,再点击按钮,却不会再添加一行新的,而是修改第一次添加那行,怎么回事??????大家教教我!!!
解决方案 »
- asp.net gridview导出excel
- 现在开始讨厌asp.net框架了.
- asp.net 添加数据类似于asp里的rs.addnew()
- 在线 求 水晶报表注册码
- 兄弟们来控讨一下,鄙人想开发一套企业级(大型)的应用系统。请问是构建在J2EE上好呢还是.NET上好?
- 域名造成系统无法登陆
- 急问,关于aspnet下调用组件dll问题
- 在ASP.Net能不能像VB.Net那样调用普通的DLL?
- 在.net里怎么给表加锁
- 怎样在asp.net中怎样画趋势图?
- 用Request 如何接收数字类型?
- 自己用VB6写了个ActiveX控件,控件中定义了一个事件,请问如何在Javascript中处理这个事件?
因为你点击按钮后PostBack了
返回服务器
重新加载DataTable
因为之前所增加的没有保存在数据库中
所以重新加载时并没有之前增加的记录建议在点击按纽后把新增的记录保存到数据库中
这是 ASP.NET 的一个机制,也就是说页面是无状态的。
你若想保存变量的值,可用 ViewState 或是 Session 。他们的用法一样,不同的是 ViewState 保存在客户端, Session 保存在服务器的内存DataRow TempNewRow;
DataTable TempTable = (DataTable)ViewState["TmpTb"];
//DataTable TempTable = (DataTable)Session["TmpTb"];
if(TempTable == null){TempTable = new DataTable()}TempNewRow = TempTable.NewRow();
TempNewRow["商品项号"]=TextBox14.Text;
TempNewRow["仓储代码"]=TextBox15.Text;
TempNewRow["商品名称"]=TextBox16.Text;
TempTable.Rows.Add(TempNewRow);
ViewState["TmpTb"] = TempTable; //用 ViewState 保存
//Session["TmpTb"]= TempTable; //用 Session 保存
DataGrid1.DataSource = TempTable;
DataGrid1.DataBind();
DataRow TempNewRow; TempTable = (DataTable)ViewState["TempTable"];
TempNewRow = TempTable.NewRow();
TempNewRow["商品项号"]=TextBox14.Text;
TempNewRow["仓储代码"]=TextBox15.Text;
TempNewRow["商品名称"]=TextBox16.Text;
TempTable.Rows.Add(TempNewRow);
TempTable.AcceptChanges();
ViewState["TempTable"] = TempTable;
DataColumn dc = new DataColumn("aaa");
this.tbl.Columns.Add(dc);DataRow dr;
for( int i = 0; i < 5;i++)
{
dr = this.tbl.NewRow();
dr["aaa"] = i;
this.tbl.Rows.Add(dr);
}
this.dataGrid1.DataSource = this.tbl;
this.tbl.Columns.Add(dc);
------------------------------
上面创建列的要放到别处,下面这些就放到button 下
----------------------------
DataRow dr;
for( int i = 0; i < 5;i++)
{
dr = this.tbl.NewRow();
dr["aaa"] = i;
this.tbl.Rows.Add(dr);
}
this.dataGrid1.DataSource = this.tbl;
--------------------------------
TempTable.AcceptChanges();
DataGrid1.DataSource = TempTable;
DataGrid1.DataBind();
DataTable TempTable; TempTable = (DataTable)Session["TempTable"];
if(TempTable == null){TempTable = new DataTable();}
TempNewRow = TempTable.NewRow();
TempNewRow["商品项号"]=TextBox14.Text;
TempNewRow["仓储代码"]=TextBox15.Text;
TempNewRow["商品名称"]=TextBox16.Text;
TempTable.Rows.Add(TempNewRow);
Session["TempTable"] = TempTable; DataGrid1.DataSource=TempTable;
DataGrid1.DataBind();这么写了,还是一样,为什么?