gridview自定义删除按钮,怎么实现。

来源:百度知道 编辑:UC知道 时间:2024/05/26 12:38:17
我的数据表是个客房表 要求点击删除后删除数据表的一行,我知道是在GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)里写
但写的东西不对 ,删除不了 代码如下:
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string id = this.GridView1.DataKeys[e.RowIndex][0].ToString();
//string id = GridView1.DataKeys[e.RowIndex].Values[0].ToString();//获取Gridview的主键
string connstr = @"server=localhost;database=hotel;uid=sa;pwd=sa;";
SqlConnection conn = new SqlConnection(connstr);
string sql = "delete from 预定登记 where 客房号='" + id + "'";
SqlCommand cm = new SqlCommand(sql,conn);
cm.ExecuteNonQuery();
Response.Write("chuahchi");

//cm.CommandText = "delete from 预定登记 where 客房号='" + id + "'";
//cm.Connection = conn;
//if (cm.ExecuteNonQuery() == 1)
//{

这种情况可以用 GridView1_RowCommand事件

在删除按钮的linkbutton属性中添加 CommandArgument='<%#Eval("客房号") %>' 然后在GridView1_RowCommand事件中代码如下

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
string id = e.CommandArgument.ToString();//这样就提取出来了客房号

}
可以设断点查看结果
剩下的就是你的事了!

//单个删除
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int serial = int.Parse(GridView1.DataKeys[e.RowIndex].Value.ToString());

FriendlyLinkManager.DeleteFriendlyLinks(serial);
Bind();
}

**********************************
GridView的DataKeyNames属性你绑定ID了吗?
我的FriendlyLinkManager.DeleteFriendlyLinks(serial)是我自己的方法
你用当然不行了
获取主键Value后面不用带[0]直接Value

把你自己的按钮加进去后转成模板,指定CommandName属性比如叫做del,绑定后在后台添加代码。添加GridView的ItemCommand事件,在事件中参数e.CommandName可以获取到你指定的值;
可以写成if(e.CommandName=="d