DataGrid修改数据的问题
在点击编辑按钮后,单独修改一列,该怎么写?
------解决方案--------------------弄个数据源控件绑定GridView
不用写代码就可以编辑了
------解决方案--------------------触发这个事件
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
if (IsPostBack)
{
GridView1.EditIndex = e.NewEditIndex; //触发了更改事件
BindGrid();
}
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
if (IsPostBack)
{
int i = this.GridView1.EditIndex; //i=1 表示修改第二行。
string flagc = ((TextBox)(GridView1.Rows[i].Cells[2].Controls[0])).Text.ToString(); //flag标记 位第二行
DataKey key = this.GridView1.DataKeys[e.RowIndex]; //要修改的行的主键值
string keyword = key.Value.ToString();
conn.Open();
OracleCommand insertcmd = new OracleCommand( "update table set 列名 = ' " + flagc + " ' where 主键= " + keyword, conn);
insertcmd.CommandType = CommandType.Text;
insertcmd.ExecuteNonQuery();
conn.Close();
Response.Write( " <script> alert( '修改已成功 '); </script> ");
this.GridView1.EditIndex = -1;
BindGrid();
}
}
------解决方案--------------------要触发上面两个事件。还有一个取消的
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
this.GridView1.EditIndex = -1;
BindGrid();
}
------解决方案--------------------设置DataGrid的itemTemplate
将指定列的模板设置为如TextBox等可编辑控件
然后后台维护全局变量a
根据a的值决定textbox是否可编辑(enable=true)
编辑按钮事件里加入
改变a的值
重新绑定datagrid
------解决方案--------------------楼主你不是说修改一行吧
我上面的是修改一列的
从来没告诉过别的。。