GridView删除某一行的写法

阳新互联 2008-12-01 10:42:27
功能: 使用gridview显示记录 在后面加两个按钮 一个更新 一个删除

其中更新用传递一个参数给跳转的页面这个比较简单,但是删除怎么写啊

用datagrid之类都有itemcommand的事件来传递参数确定删除哪一行,而gridview的RowCommand不知道怎么传递参数

哪位仁兄发一个有此功能的代码给俺 包括aspx和cs中相关的那一段就可

哦谢了
...全文
297 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
HDNGO 2008-12-01
  • 打赏
  • 举报
回复
<asp:GridView ID="gv" runat="server" Width="100%" BorderWidth="0px" AutoGenerateColumns="False" CssClass="lie" EmptyDataText="暂时没有所需内容!" DataKeyNames="Id" OnRowDeleting="gv_RowDeleting">
HDNGO 2008-12-01
  • 打赏
  • 举报
回复
设置一个DataKeyNames,一般是ID,然后,在RowDeleting事件里,用gridview1.DataKeys[e.RowIndex].Value就能抓到这个ID的哇。。。哪还用那么麻烦~
HDNGO 2008-12-01
  • 打赏
  • 举报
回复
我一楼给你的代码有什么问题?当你的CommandName是delete的时候,自动激发RowDeleting事件的哇~
阳新互联 2008-12-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zcl26 的回复:]
gridview有个函数rowcommand的,在事件里双击,会出现在。cs里,
protected void DirectoryInfoGridView_RowCommand(object sender, GridViewCommandEventArgs e)
然后在cs里写它要执行的代码,前台要加command的名字
CommandName
[/Quote]
我知道是怎么弄 但是具体不知道怎么弄

<asp:ButtonField HeaderText="删除" Text="删除" CommandName="Delete">
<ItemStyle HorizontalAlign="Center" />
</asp:ButtonField>



protected void GV_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Delete")
{
string strSQL = "delete from TABBASPOSAGENT where usercard=123459";//这里的参数我是写死了,如果传递参数啊???
Database db = new Database();
db.ExecuteSQL(strSQL);
Response.Write("<script language=javascript>alert('删除成功!');</script>");
}
}

我在前面的列中绑了 用户卡号(usercard),如何根据这个卡号传递参数进行删除?

而且我用上面固定参数的写法执行后,记录虽然是删除了 确总是报告一个错误 GridView“GV”激发了未处理的事件“RowDeleting”。
wangzhenyue 2008-12-01
  • 打赏
  • 举报
回复
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
//这里面是获取主键的值。。cells[0]是第一列
string a=GridView1.SelectedRow.Cells[0].Text;
SqlConnection con = new SqlConnection(ConnectionString);
con.Open();
//可以将这里面的SQL语句写成删除的。
string sql = "select [co_id]as [会员号],[add_years]as [续费年限],[co_date]as [到期时间] from jq_it where co_id='" + a + "'";
SqlCommand com = new SqlCommand(sql, con);
SqlDataAdapter da = new SqlDataAdapter();
SqlDataReader dr = com.ExecuteReader();
dr.Read();
Session["time"] = dr.GetValue(2).ToString();
int d = Convert.ToInt32(dr.GetValue(1).ToString());
if (Convert.ToDateTime(Session["time"]) <= System.DateTime.Today.ToLocalTime())
{
dr.Close();
string time1 = System.DateTime.Today.AddYears(d).ToShortDateString();
string sqlupdate1 = "update jq_it set co_date='" + time1 + "',add_isrush='1',add_rushname='',add_years='0',add_money='' where co_id='" + a + "' ";
SqlCommand comm = new SqlCommand(sqlupdate1, con);
comm.ExecuteNonQuery();
Response.Write("<script> alert ('提交成功') </script>");
}
else
{
dr.Close();
string time2 = Convert.ToDateTime(Session["time"]).AddYears(d).ToShortDateString();
string sqlupdate2 = "update jq_it set co_date='" + time2 + "',add_isrush='1',add_rushname='',add_years='0',add_money='' where co_id='" + a + "' ";
SqlCommand scomm = new SqlCommand(sqlupdate2, con);
scomm.ExecuteNonQuery();
Response.Write("<script> alert ('提交成功') </script>");
}
gridviewbing();
}
dengchenlu 2008-12-01
  • 打赏
  • 举报
回复
1.可以直接用删除控件

2.用模板列,里面加Button或者LinkButton
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Delete"
Text="删除" CommandArgument='<%# Eval("传值字段") %>' OnClientClick="return confirm('确认要删除此合同?');"></asp:LinkButton>


RowCommand事件里写

if(e.CommandName == Delete)
{
string id = e.CommandArgument.ToString();
//操作
}
hyj12345678 2008-12-01
  • 打赏
  • 举报
回复

<asp:GridView ID="grd" CssClass="DIVGrid" runat="server" BackColor="White" BorderWidth="1px"
BorderColor="Gray" BorderStyle="Solid" CellPadding="3" Font-Size="9pt" GridLines="Horizontal"
HorizontalAlign="Left" Width="100%" Style="left: 34px; top: 240px" AllowPaging="True"
EmptyDataText="No data." AutoGenerateColumns="false" ShowFooter="True"
OnRowDataBound="grd_RowDataBound" OnRowCommand="grd_RowCommand"
OnRowEditing="grd_RowEditing" OnRowUpdating="grd_RowUpdating" OnRowCancelingEdit="grd_RowCancelingEidt"
OnRowDeleting="grd_RowDeleting" >

<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="ibtnDelete" runat="server" CausesValidation="false" CommandName="Delete" ImageUrl="../SysFrame/images/ButtonDelete.gif" />
</ItemTemplate>
</asp:TemplateField>



protected void grd_RowDeleting(object sender, GridViewDeleteEventArgs e)
{

string id = ((Label)grd.Rows[e.RowIndex].FindControl("lblid")).Text; //去id
string sql = "delete from tbUser where id='" + id + "'"; //组成sql
using (OleDbConnection conn = GetConn())
{
OleDbCommand cmd = new OleDbCommand(sql, conn);
cmd.ExecuteNonQuery();
}
this.BindGrid(this, EventArgs.Empty);
}
zcl26 2008-12-01
  • 打赏
  • 举报
回复
gridview有个函数rowcommand的,在事件里双击,会出现在。cs里,
protected void DirectoryInfoGridView_RowCommand(object sender, GridViewCommandEventArgs e)
然后在cs里写它要执行的代码,前台要加command的名字
CommandName

HDNGO 2008-12-01
  • 打赏
  • 举报
回复

protected void gridview1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int _Id = Convert.ToInt32(gridview1.DataKeys[e.RowIndex].Value);
//删除具体的sql代码
}

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧