博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实现对gridview删除行时弹出确认对话框的一种简单方法
阅读量:5151 次
发布时间:2019-06-13

本文共 2033 字,大约阅读时间需要 6 分钟。

在VS2008提供的GridView中我们可以直接添加一个CommandField删除列:<asp:CommandField ShowDeleteButton="True" />,完后在它的RowDeleting事件中完成删除。但在多半我们在做这种删除操作时都需要先让操作者再确认下,完后再进行删除,以避免误操作引起的误删除。

可以通过下面方法给GridView删除前加上个确认对话框。
首先,在GridView的属性对框话框中点击“Columns”进入它的“字段”设计器。接着在“字段”设计器中选择以前已加上的那个CommandField“删除”列,这时在它的属性列表下会看到一个“将此它段转换为 TemplateFied”的项,点击将它转换为TemplateFied列。
完后退出该字段设计器,切换到源码视图你会发现该列已由原来的:<asp:CommandField ShowDeleteButton="True" />
变为了:
CODE:

  
  

最后在<asp:LinkButton>中加入:

OnClientClick="javascript:return confirm('真的要删除吗?');"

或者加入:

OnClientClick="if(confirm('你确定要删除此记录吗?')){return true;}else{return false;}"

这样点击删除时就会先在客户端弹出“确认要删除吗?”对话框,而原来在RowDeleting事件中写的代码完全不用改变。

注意:CommandName="delete" CommandName 一定要设为"delete",否则将不触发GridView中的RowDeleting 事件.

注意:在事件protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)里需要设置GridView中的DataKeysName = Fid 时,才可以找到相应的ID.(Fid为表的主键 id)

具体的前台代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="OurTeamOrder.aspx.cs" Inherits="Admin_ProductSecondTypeOrder" %>                无标题页          

后台代码:

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)  {      //Delete sql code      model.ProductId = (int)GridView1.DataKeys[e.RowIndex].Value;      //model.ProductOrder = Convert.ToInt32(((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim());      //model.ProductOrder = Convert.ToInt32(GridView1.Rows[e.RowIndex].Cells[2].Controls[0]);      //model.ProductTypeId = ((int)(GridView.Rows[e.RowIndex].Cells[0].Controls[0]));        product.DeleteOurTeamOrder(model);      GridView1.EditIndex = -1;      BindData();  }

 

转载于:https://www.cnblogs.com/xiangyisheng/p/5097145.html

你可能感兴趣的文章