数据源有些行状态为deleted,如何将gridview中的行与数据行对应起来??
private void BindData()
{
GridView1.DataSource = DT;
GridView1.DataBind();
}
在DT里面,有些行状态是deleted,这样GridView1里面是不会显示这些行的。
现在在GridView1里修改了某些行的值,要在RowUpdating事件里把这些值回写到DT中,如何确定修改的行是DT里面哪一行??
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
DataTable dt = DT;
GridViewRow row = GridView1.Rows[e.RowIndex];
string strText1 = ((TextBox)row.FindControl("TextBox1")).Text;
string strText2 = ((TextBox)row.FindControl("TextBox2")).Text;
string strText3 = ((TextBox)row.FindControl("TextBox3")).Text;
string strText4 = ((TextBox)row.FindControl("TextBox4")).Text;
dt.Rows[e.RowIndex]["Col1"] = strText1;
dt.Rows[e.RowIndex]["Col2"] = strText2;
dt.Rows[e.RowIndex]["Col3"] = strText3;
dt.Rows[e.RowIndex]["Col4"] = strText4;
GridView1.EditIndex = -1;
BindData();
}
上面这段代码是错误的,因为 row.RowIndex != e.RowIndex。
想不出方法,特上CSDN求救 gridview RowUpdating
[解决办法]
设置gridview的key为字段id
GridView1.DataKeys[row.RowIndex].Value得到id值,你就可以根据id去获取对应的记录