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

关于GridView选择的问题,有没有能帮忙解决的,先谢了!!比较急~~~~
想实现功能如下:
1、启用智能标签“选择”。
2、点击“选择”之后,用页面中其它的“删除”、“修改”按钮来对数据库进行操作。
下面是我写的删除代码:
  if (GridView1.SelectedIndex == -1)
{
Response.Write("<script language=javascript>alert('你还没选择!');</script>");
}
else
{
string id = GridView1.DataKeys[GridView1.SelectedIndex].Value.ToString();
SqlConnection conn = new SqlConnection("server=.;database=tlfzc;uid=sa;pwd=;");
SqlCommand cmd = new SqlCommand("delete from hetong where ID=" + id,conn);
cmd.Connection.Open();
cmd.ExecuteNonQuery();
cmd.Connection.Close();
this.GridView1.SelectedIndex = -1;
}
现在问题出现了,虽然也能删除数据,但是必需将IE关掉之后再打开,才能正确显示,也就是说,点击“删除”按钮之后,没有反应。哪位大哥能帮下忙。还有“修改”的代码怎么写,也帮忙下,先谢了!第一次到这个论坛,不当的地方请指出。

------解决方案--------------------
删除后重新绑定数据就行了...把你之前绑定GridView的方法丢进来
------解决方案--------------------
删除之后要重新绑定一下,
------解决方案--------------------
必须要重新绑定一下数据才可以
------解决方案--------------------
要注意2点:
1.只读列:列如ID这样的我们一般会设成只读而不能修改的列,获取它的值后,我们就有了第一个参数.RowUpdating
int id =Convert.ToInt32(this.gridview.Rows[e.RowIndex].Cells[0].text);

2.绑定列:用下面的方法获取要更新的参数

((TextBox)this.gridview.Rows[e.RowIndex].Cells[1].Controls[0]).Text.ToString();//第二个单元格数据
 ((TextBox)this.gridview.Rows[e.RowIndex].Cells[2].Controls[0]).Text.ToString();//第三个单元格数据
 ((TextBox)this.gridview.Rows[e.RowIndex].Cells[3].Controls[0]).Text.ToString();//第四个单元格数据

在这里可以写连接和执行的SQL语句了(最好写成方法)
 SqlConnection conn = new SqlConnection("server=.;database=tlfzc;uid=sa;pwd=;"); 
 SqlCommand cmd = new SqlCommand("updata hetong set ......where ID=" + id,conn); 
 cmd.Connection.Open(); 
 cmd.ExecuteNonQuery(); 
 cmd.Connection.Close(); 

更新完后行的索引为-1(即没选取)
 this.GV_Users.EditIndex = -1;

BindDataToGridview();//重新绑定数据的方法(这里就不做祥解了)