asp.net中,有关datagrid数据源(DataTable)添加一行

2025-01-05 17:52:08
推荐回答(5个)
回答1:

问题可能出在 dt_stockIn 上,你的 dt_stockIn 是个全局变量吗 ?
你在btn_addOne_Click事件中对进行新增行操作后,是如何保存它的 ?
要知道btn_addOne_Click事件后页面会刷新,如果你没有对dt_stockIn进行保存,那么它的值会丢失。建议用一个session保存一下。
以下是我的测试代码:
protected void Page_Load( object sender, EventArgs e )
{
if( IsPostBack == false )
{
DataTable dt_stockIn = ds.Tables["UserInfo"];
GridView1.DataSource = dt_stockIn;
GridView1.DataBind();

Session["table"] = ds.Tables["UserInfo"];
}
}

protected void Button1_Click( object sender, EventArgs e )
{

DataTable dt_stockIn = ( DataTable )Session["table"];

dt_stockIn.Rows.Add( dt_stockIn.NewRow() );

GridView1.DataSource = dt_stockIn;
GridView1.DataBind();

}
以上代码仅供参考。

回答2:

实现的代码发上来

回答3:

可进行如下考虑:

1、数据是否添加到了DataTable中?可跟踪调试一下。

2、DataGrid是否进行了分页显示?

3、DataTable是事对数据做了过滤?

4、建议在.Net2.0后用GridView替换DataGrid。

回答4:

DEBUG一下,确定新增的那一行是否已经添加到数据源中
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) //add
{
gv_stockIn.DataSource = dt_stockIn;
gv_stockIn.DataBind();
}
}

回答5:

gv_stockIn.DataSource = dt_stockIn.table;试试