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

GridView有个删除操作的列,怎样在点击“删除”前提示用户“是否删除”?
注意,是要在前台代码中实现这个 "询问用户是否删除"的功能,
只有当用户选择“确定删除后”才触发后台代码。

前台代码
HTML code

 <asp:GridView ID="gv_OrderInfo" runat="server" OnRowDeleting="gv_OrderInfo_RowDeleting">
        <Columns>
            <asp:ButtonField CommandName="Delete" Text="删除" >
            <ItemStyle Width="30px"></ItemStyle>
            <ControlStyle ForeColor="Blue" />
            </asp:ButtonField>
        </Columns>



后台代码如下
C# code

        protected void gv_OrderInfo_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
           //我的要求是前台询问用户是否删除,当选择“确定删除”之后才触发此方法
        }



------解决方案--------------------


可以在gv_OrderInfo_RowDataBound事件里写
C# code

 protected void gv_OrderInfo_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)//(RowType是对象的行类型)这是判断绑定的,只有DataControlRowType.DataRow行能绑定数据
        {
            ((Button)(e.Row.Cells[4].Controls[0])).Attributes.Add("onclick","return confirm('确定要删除吗? ')");
        }
    }

------解决方案--------------------
需要处理一下,我的这种写法很常用啊,处理起来也方便啊
public void btnDelete_Command(object sender,CommandEventArgs e)
{
? string id= e.CommandArguments.ToString();
? string strSQL = "delete from 你的表名 where GUID="+int.Parse(id);
? //执行删除逻辑即可
? ...
}
------解决方案--------------------
如果你想传递多个参数的话,将三个参数都写到CommandArgument中,用一定的符号分割,然后取值的时候,再按照这个符号进行分割使用即可。

参考