在VS2008提供的GridView中我们可以直接添加一个CommandField删除列:<asp:CommandField ShowDeleteButton="True" />,完后在它的RowDeleting事件中完成删除。但在多半我们在做这种删除操作时都需要先让操作者再确认下,完后再进行删除,以避免误操作引起的误删除。
可以通过下面方法给GridView删除前加上个确认对话框。
首先,在GridView的属性对框话框中点击“Columns”进入它的“字段”设计器。接着在“字段”设计器中选择以前已加上的那个CommandField“删除”列,这时在它的属性列表下会看到一个“将此它段转换为 TemplateFied”的项,点击将它转换为TemplateFied列。
完后退出该字段设计器,切换到源码视图你会发现该列已由原来的:<asp:CommandField ShowDeleteButton="True" />
变为了:
CODE:
                <asp:TemplateField ShowHeader="False">
                    <ItemTemplate>
                        <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
                            CommandName="Delete" Text="删除" OnClientClick="javascript:return confirm('真的要删除吗?');"></asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateField>

最后在<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)

具体的前台代码如下:

[html] view plaincopy
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="OurTeamOrder.aspx.cs" Inherits="Admin_ProductSecondTypeOrder" %>  
  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head runat="server">  
    <title>无标题页</title>  
</head>  
<body>  
    <form id="form1" runat="server">  
    <div>  
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"   
            onrowediting="GridView1_RowEditing"   
            PageSize="30" DataKeyNames="ProductID"   
            onrowupdating="GridView1_RowUpdating"   
            onrowcancelingedit="GridView1_RowCancelingEdit"   
            onrowdeleting="GridView1_RowDeleting">  
            <Columns>  
                <asp:BoundField DataField="ProductID" HeaderText="编号" ReadOnly="True" />  
                <asp:BoundField DataField="ProductName" HeaderText="名称"   
                    ReadOnly="True" />  
                <asp:BoundField DataField="ProductOrder" HeaderText="排序序号" />  
                <asp:CommandField InsertVisible="False" ShowCancelButton="False"   
                    ShowEditButton="True" />  
                <asp:TemplateField ShowHeader="False">  
                    <ItemTemplate>  
                        <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"   
                            CommandName="Delete" Text="删除" OnClientClick="javascript:return confirm('真的要删除吗?');"></asp:LinkButton>  
                    </ItemTemplate>  
                </asp:TemplateField>  
            </Columns>  
        </asp:GridView>  
    </div>  
    </form>  
</body>  
</html>

后台代码:

[csharp] view plaincopy
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();  
}

实现对gridview删除行时弹出确认对话框的一种简单方法的更多相关文章

  1. javaScript 删除事件 弹出确认 取消对话框

    javaScript 删除事件 弹出确认 取消对话框 1. <a href="javascript:if(confirm('确实要删除?'))location='http://www. ...

  2. ASP.NET点击按钮弹出确认对话框方法

    开发asp.net网页应用程序的时候,有些页面的按钮需要增加一个确认对话框,比如: 实现这个功能比较简单,代码这样写: Button.Attributes["onclick"] = ...

  3. a链接中 JS弹出确认对话框方法

    一种: <a href="javascript:if(confirm('确实要删除该内容吗?'))location='http://www.google.com'">弹 ...

  4. Js 删除前弹出确认框

    <td align="center" valign="middle" class="black3"> <c:if test ...

  5. jQuery EasyUI弹出确认对话框(确认操作中.....)

    因为毕业设计的原因,在初期设计系统的时候没有考虑功能的正确性,所以很多的功能都没有加验证和确认的操作,给人在操作方面上有一些不好的感觉(可能失误点击后,数据就别删除,或者增加了),所以在网上找了一些资 ...

  6. Asp.Net后台弹出确认提示窗Confirm

    前端js代码: function MyConfirm(message, guid) { if (confirm(message) == true) { document.getElementById( ...

  7. electron app弹出默认对话框后页面失去焦点问题

    最近再做electron app程序的做删除数据操作的时候遇到一个诡异的bug,页面点击删除按钮后,弹出确认对话框后,页面失去焦点,文本框无法点击输入任何参数,但是使用浏览器操作正常,最后确定是ele ...

  8. JavaScript三在弹出的对话框中

    据悉js小伙伴会发现,我们在某些情况下使用的alert()办法.prompt()办法.prompt()办法.它们在屏幕上的对话框.容,使用这样的方法使得页面的交互性更精彩.实际上我们常常会在进行网页浏 ...

  9. C# GridView Edit & Delete, 点击Delete的时候弹出确认框

    1. 使用GridView自带属性ShowEditButton和ShowDeleteButton,均设为True  <Columns> ... <asp:CommandField S ...

随机推荐

  1. iOS逆向工程之Hopper+LLDB调试第三方App

    LLDB是Low Level Debugger的简称,在iOS开发的调试中LLDB是经常使用的,LLDB是Xcode内置的动态调试工具.使用LLDB可以动态的调试你的应用程序,如果你不做其他的额外处理 ...

  2. EntityFramework的多种记录日志方式,记录错误并分析执行时间过长原因(系列4)

    前言 Entity Framework 延伸系列目录 今天我们来聊聊EF的日志记录. 一个好的数据库操作记录不仅仅可以帮你记录用户的操作, 更应该可以帮助你获得效率低下的语句来帮你提高运行效率 废话不 ...

  3. 反应器(Reactor)和主动器(Proactor)

    网络方面用的比较多的库是libevent和boost.asio,两者都是跨平台的.其中libevent是基于Reactor实现的,而boost.asio是基于Proactor实现的.Reactor和P ...

  4. 似懂非懂的localStorage和sessionStorage

    一.区别 相信很多人都见过这两个关于HTML5的新名词!HTML5种的web storage包含两种存储方式:localStorage和sessionStorage,这两种方式存储的数据不会自动发给服 ...

  5. 15个C++项目列表

    实验楼上有很多C++的实战项目,从简单到进阶,学习每个项目都可以掌握相应的知识点. 如果你还是C++新手的话,那么这个C++的项目列表你可以拿去练手实战开发,毕竟学编程动手实践是少不了的! 如果你不知 ...

  6. 在 Linux 上使用 Jexus + Mono 建立 Asp.Net 网站.

    godaddy 买了个net空间,一点也不好用. 几个G的数据, 上传数据只有几kb , 想用 ssh 登录上去用 wget 下载,也不行 windows的主机貌似没有 ssh 功能... 后来实在忍 ...

  7. “前.NET Core时代”如何实现跨平台代码重用 ——源文件重用

    微软在2002年推出了第一个版本的 .NET Framework,这是一个主要面向Windows 桌面(Windows Forms)和服务器(ASP.NET Web Forms)的基础框架.在此之后, ...

  8. 【腾讯Bugly干货分享】移动客户端中高效使用SQLite

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57b57f2a0703f7d31b9a3932 作者:赵丰 导语 iOS 程序能 ...

  9. 深入理解IIS的多线程工作机制

    首先让我们来看看IIS里面的这2个数字:最大并发连接数,队列长度.先说这2个数字在哪里看. 最大并发连接数:在IIS中选中一个网站,右键网站名称,在右键菜单中找到并点击[管理网站]->[高级设置 ...

  10. IKAnalyzer

    我们的项目中中文切词使用的是mmseg,有一个不满意的地方是jar包中的默认词典一定会被加载进去,当我对有些term有意见时,无法删除. mmseg中Dictionary.java里一段代码保证了/d ...