读书人

GridView剔除事件点击删除后GridV

发布时间: 2013-06-19 10:26:41 作者: rapoo

GridView删除事件,点击删除后,GridView变空白,要再点击搜索结果才出现,想很久没解决
我的 RowDeleting事代码如下
string strDelet = @"delete from [GROUPUSER] WHERE USERID in( select USERID from [USER] where LOGONID='"+gvList.DataKeys[e.RowIndex].Value.ToString()+"')";
SqlCommand sqlcom = new SqlCommand(strDelet,Conn());
sqlcom.ExecuteNonQuery();
Conn().Close();
Response.Write("<script>alert('删除成功!')</script>");
this.gvList.DataBind(); GridView select String ?deleting
[解决办法]

引用:
调用gvList.DataBind(),这个方法不行,还要自己写个绑定方法,如下
private void BindData()
{
//将数据部署到GridView中
string sqlStr = @"select LOGONID,USERNAME,GROUPNAME from [USER] left join [GROUPUSER]
on [USER].USERID=[GROUPUSER].USERID right join [GROUP] on [GROUP].GROUPID=[GROUPUSER].GROUPID where GROUPNAME='" + ddlSearch.SelectedValue + "'";
SqlDataAdapter dad = new SqlDataAdapter(sqlStr, Conn());
DataSet dst = new DataSet();
dad.Fill(dst);
gvList.DataSource = dst;
gvList.DataBind();

}
,不过还是不明白,到底什么时候才需要调用这个方法,什么情况下可以直接用.DataBind()方法。

执行 this.gvList.DataBind() 只是绑定数据,前提是你已经用正确的dst给它赋值了。(这个dst恰好是你用正确的查询条件得到的查询结果)。

从你在问题中贴出的代码,无法看出你给 .DataSource 传送的是什么值。

而从你后边的代码来看,不管之前你传送的是什么值,你都重新查询并且重新给 DatsSource 赋值了。

或许你只是忘记了给这个属性赋值。

读书人网 >C#

热点推荐