在GridView中,可以通过设计界面GridViewr任务->编辑列->CommandField,很简单的添加的编辑和删除按钮

在前台源码中,可以看到GridView自动生成了两个列。

<asp:GridView ID="GridView1" runat="server" ondatabound="GridView1_DataBound"
    onrowdatabound="GridView1_RowDataBound">
    <Columns>
        <asp:CommandField HeaderText="编辑" ShowEditButton="True" />
        <asp:CommandField HeaderText="删除" ShowDeleteButton="True" />
    </Columns>
</asp:GridView>

但这样在执行更新和删除代码之前都没有一些比如”确定更新吗?“或”确定删除吗?“之类的操作提示

百度一下,发现很多网友都说可以在GridView1_RowDataBound事件添加 button.Attributes.Add("OnClick", "javascript:return confirm('确定删除吗?')");

这段代码来实现。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
        {
            ((LinkButton)e.Row.Cells[].Controls[]).Attributes.Add("onclick", "javascript:return confirm('你确认要删除吗?')");
        }
    }
}

可是响应GridView1_RowDataBound事件是要往返服务器的,没有必要为了一个提示又要重新绑定数据

一般像Button类的控件响应事件之前提示,都可以添加前台响应事件 OnClientClick="return confirm('确定删除吗?');"

<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="return confirm('确定删除吗?');" />

其实GridView也可以用这种方法来实现,将CommandField字段改为TemplateField字段。

将“编辑”和“删除”转换为TemplateField字段

然后就会发现前台源码变成了下面那样。

<asp:GridView ID="GridView1" runat="server" ondatabound="GridView1_DataBound"
    onrowdatabound="GridView1_RowDataBound" AutoGenerateColumns="False">
    <Columns>
        <asp:TemplateField HeaderText="编辑" ShowHeader="False">
            <EditItemTemplate>
                <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True"
                    CommandName="Update" Text="更新"></asp:LinkButton>
                &nbsp;<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False"
                    CommandName="Cancel" Text="取消"></asp:LinkButton>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
                    CommandName="Edit" Text="编辑"></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="删除" ShowHeader="False">
            <ItemTemplate>
                <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False"
                    CommandName="Delete" Text="删除"></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

这样的话,就可以在需要提示的<asp:LinkButton >添加这段代码 OnClientClick="return confirm('确定删除吗?');" 。比如:

<asp:TemplateField HeaderText="删除" ShowHeader="False">
    <ItemTemplate>
        <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False"
            CommandName="Delete" Text="删除"  OnClientClick="return confirm('确定删除吗?');">
        </asp:LinkButton>
    </ItemTemplate>

这样有一个问题就是自动生成的几个LinkButton,有些ID是重名的。上面的代码就有两个LinkButton1的ID和两个LinkButton2的ID。需要手动重命名LinkButton的ID

END

GridView中的编辑和删除按钮,执行更新和删除代码之前的更新提示或删除提示的更多相关文章

  1. extjs.net 按钮执行并显示Mask代码

    <ext:Button ID="ButtonTest" runat="server"  Width="65" Text="同 ...

  2. 模拟邮箱输入邮箱地址、收藏标签。input框输入内容后回车,内容显示成小方块并带删除按钮。

    模拟邮箱输入邮箱地址.收藏标签: 文本框输入文字后按回车键或者分号键,输入框中的文字变成小块并带删除按钮和操作. 页面代码: <!DOCTYPE html> <%@ page lan ...

  3. GridView中CheckBox的用法

    以下是我在GridView中控制CheckBox的全选/取消全选,根据子CheckBox处理全选CheckBox状态的操作并获取所选GridView中所选行的列的值. 脚本代码:    <scr ...

  4. GridView控件中插入自定义删除按钮并弹出确认框

    GridView控件中插入自定义删除按钮,要实现这个功能其实有多种方法,这里先记下我使用的方法,以后再添加其他方法. 一.实现步骤 1.在GridView中添加模板列(TemplateField). ...

  5. Gridview中的选择、删除、编辑、更新、取消留着备用。

    后台程序: public partial class tw2 : System.Web.UI.Page{    protected void Page_Load(object sender, Even ...

  6. openerp学习笔记 视图(tree\form)中隐藏按钮( 创建、编辑、删除 ),tree视图中启用编辑

    视图(tree\form)中隐藏按钮( 创建.编辑.删除 )create="false" edit="false" delete="false&quo ...

  7. asp.net中父子页面通过gridview中的按钮事件进行回传值的问题

    这两天写BS程序,遇到父子页面传值的问题,以前没写过web系统,用了几天时间才将问题解决,总结下记录下来: 问题描述: 父页面A中有一个gridview,每行6个列,有5列中均有一个按钮,单击按钮,会 ...

  8. GridView编辑、取消按钮自定义控件

    这个需求来自于论坛一位坛友提出的问题,他希望能够自定义编辑.取消按钮,而不是用GridView自带的编辑和取消.这里只当抛砖引玉,提出一些解决方案. 首先在页面前台设置一个GridView. < ...

  9. GridView中的更新按钮不能触发RowUpdating事件

    当点击“编辑”按钮以后,可以看到“更新”和“取消”按钮,“取消”按钮可以正常触发RowCancelingEdit事件,但是“更新”按钮不能触发RowUpdating事件. 解决方案: 在<asp ...

随机推荐

  1. 记一次tomcat故障排查(转)

    1~1024之间的端口号是保留端口,通常是为特定目的预留的.虽然你的问题不是由于保留端口引起的,但是仍然建议你不要随意使用保留端口作为自定义服务的端口,如果你能早早遵循这一规则压根就不会遇到这个问题. ...

  2. top使用命令

    top命令 第一行和uptime命令一样,都有系统的负载. 10:36:19 当前时间 up 1day .7min 系统执行时间.格式为天 时:分 1 user 当前登录用户数 load averag ...

  3. Android学习路线(十一)管理Activity的生命周期

    当一个用户进入.退出,再次进入你的应用时,你的应用中的Activity 会在它的生命周期的各个状态下切换. 比如,当你的activity第一次启动.它出如今系统的前方接受用户的焦点.在这个过程中,An ...

  4. (大数据工程师学习路径)第三步 Git Community Book----基本用法(下)

    一.比较提交 - Git Diff 1.比较提交 - Git Diff 你可以用 git diff 来比较项目中任意两个版本的差异. $ git diff master..test 上面这条命令只显示 ...

  5. Java虚拟机类型卸载和类型更新解析(转)

    转自:http://www.blogjava.net/zhuxing/archive/2008/07/24/217285.html [摘要]          前面系统讨论过java 类型加载(loa ...

  6. 数据库文档生成工具——word2chm,SqlSpec

    首先使用代码生成器可以生成word版本的数据库文档. 转成chm格式的更加小巧和方便~ SqlSpec是个好工具,可以生成所有数据库相关的信息 之后可以一键生成chm文档.

  7. Tips & Tricks:Apache log4j简明教程(二)

    在上一讲Apache log4j简明教程(一)中介绍了log4j的基本概念,配置文件,以及将日志写入文件的方法,并给出了一个详细的示例.这一讲,我在继续谈一谈如何使用log4j将日志写入MySQL数据 ...

  8. I2C驱动程序框架probe道路

    基于Linux的I2C驱动器.采纳probe道路.根据这个框架,如下面就可以写任何支持I2C总线设备Linux驱动器. I2C设备连接到cpu具体i2c接口.被安装在cpu的i2c适配器.i2c设备和 ...

  9. validateRequest="false"属性及xss攻击

    validateRequest="false"   指是否要IIS验证页面提交的非法字符,比如:>,<号等,当我们需要将一定格式得html代码获得,插入数据库时候,就要 ...

  10. HTML5分析实战Web存储机制(Web Storage)

    Web Storage它是Key-Value在持久性数据存储的形式.Web Storage为了克服cookie把所引起的一些限制.当数据需要严格格控制client准时,没有必要不断地发回数据serve ...