日期:2014-05-18  浏览次数:20369 次

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


------解决方案--------------------
楼主你不是说修改一行吧
我上面的是修改一列的
从来没告诉过别的。。