asp.net GridView的删除对话框的两种方法

下面开始详细介绍“ASP.NET GridView的删除对话框的两种方法”。

方法一:使用自定义模态窗口

在GridView中完成删除操作时,我们需要弹出确认对话框来告知用户所选数据即将被删除。为此,我们可以使用自定义的模态窗口。

1. 创建一个新的Web窗体

在项目中添加一个新的Web窗体,为该窗体添加一个Div元素和两个按钮:一个用于绑定GridView,另一个用于关闭窗口。

```HTML

```

2. 添加JavaScript脚本

在窗体中添加以下JavaScript脚本:

 function ShowConfirm() {
     // 获取gridview
     var gridview = document.getElementById('<%= GridView1.ClientID %>');
     // 获取选中行
     var rows = gridview.getElementsByTagName('tr');
     var count = 0;
     var id = '';

     // 获取选中行的id
     for (var i = 0; i < rows.length; i++) {
         var cell = rows[i].getElementsByTagName('td')[0];
         var chk = cell.getElementsByTagName('input')[0];
         if (chk != null && chk.type === 'checkbox' && chk.checked) {
             id += chk.value + ",";
             count++;
         }
     }
     // 判断有没有选中记录
     if (count === 0) {
         alert("请选择一条记录!");
         return;
     }
     // 截去最后的逗号
     id = id.substring(0, id.length - 1);
     // 将选中的记录绑定到隐藏框
     document.getElementById('<%= HiddenField1.ClientID %>').value = id;
     // 弹出自定义对话框
     document.getElementById('messageBox').style.display = '';
 }

在脚本中,首先获取GridView控件,并循环检查所有可见行的复选框是否被选中,如果选中了,则将该行的记录ID存入一个隐藏的文本框。

3. 后台代码

在窗体中添加以下后台代码:

 protected void btnYes_Click(object sender, EventArgs e)
 {
     string[] id = HiddenField1.Value.Split(',');
     string sql = "delete from t_user where (user_id=@userid)";
     using (SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["dbConnectionString"].ConnectionString))
     {
         conn.Open();
         SqlCommand cmd = new SqlCommand(sql, conn);
         SqlParameter[] para = new SqlParameter[] { new SqlParameter("@userid", SqlDbType.NVarChar) };
         cmd.Parameters.AddRange(para);
         for (int i = 0; i < id.Length; i++)
         {
             para[0].Value = id[i];
             cmd.ExecuteNonQuery();
         }
     }
     GridView1.DataBind();
 }

 protected void btnNo_Click(object sender, EventArgs e)
 {
     // 关闭窗口
     Response.Write("<script>document.getElementById('messageBox').style.display='none';</script>");
 }

在删除按钮被点击时,后台代码首先获取隐藏文本框中存储的记录ID,并将其封装到SQL参数中。然后,通过SqlCommand对象执行SQL语句,最后刷新GridView显示。当取消按钮被点击时,我们只需要简单地关闭对话框。

示例说明

由于篇幅的限制,这里只是简略的介绍了如何使用自定义模态窗口来完成GridView的删除操作,完整的示例代码在这里:https://github.com/gdufeZLYL/ASP.NET_DeleteDialog。

方法二:使用GridView内置的删除对话框

1. 新建一个数据源

首先,我们需要在代码中添加一个SqlDataSource控件,该控件的目的是提供数据源。在GridView中使用SqlDataSource控件时,数据源应与GridView实例一起工作。

<SqIDataSource runat="server" ID="SqlDataSource" ConnectionString="<%$ ConnectionStrings:dbConnectionString%>"
                  DeleteCommand="DELETE FROM t_user WHERE user_id=@userid">
        <DeleteParameters>
            <asp:Parameter Name="userId" Type="String" />
        </DeleteParameters>
    </SqIDataSource>

2. GridView控件的配置

接下来,我们需要将GridView控件配置为删除记录时使用内置的删除对话框。为此,我们将AutoGenerateDeleteButton属性设置为"True"。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource"
                      DataKeyNames="user_id" CellPadding="4" ForeColor="#333333" GridLines="None" AllowPaging="True"
                      PageSize="10" AutoGenerateDeleteButton="True">
                      <AlternatingRowStyle BackColor="White" />
                      <Columns>
                          <asp:BoundField DataField="user_id" HeaderText="用户ID" ReadOnly="True" SortExpression="user_id" />
                          <asp:BoundField DataField="user_name" HeaderText="用户名" SortExpression="user_name" />
                          <asp:BoundField DataField="user_password" HeaderText="用户密码" SortExpression="user_password" />
                          <asp:BoundField DataField="user_type" HeaderText="用户类型" SortExpression="user_type" />
                      </Columns>
                      <EditRowStyle BackColor="#7C6F57" />
                      <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
                      <HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
                      <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
                      <RowStyle BackColor="#E3EAEB" />
                  </asp:GridView>

示例说明

在这个方法中,我们主要是利用了GridView控件本身的内置删除对话框,随着GridView的版本更新,这个功能不断的完善改进,实际使用中非常方便。完整的示例代码在这里:https://github.com/gdufeZLYL/ASP.NET_DeleteDialog。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:asp.net GridView的删除对话框的两种方法 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JavaScript中立即执行函数实例详解

    JavaScript中的立即执行函数是指在定义后立即执行的函数,该函数执行后,返回值即被抛弃,仅保留函数内部的执行结果,不会对全局环境造成污染。本文将详细讲解JavaScript中立即执行函数的各个方面,包括基本语法、应用示例以及优缺点等。 基本语法 JavaScript中的立即执行函数需要使用一对匿名函数进行定义,但为了避免匿名函数对全局环境造成影响,并使…

    JavaScript 2023年5月27日
    00
  • js以对象为索引的关联数组

    “以对象为索引的关联数组”在JavaScript中被称为“对象”,也是一种常见的数据结构。从表面上看,它与其他编程语言中的字典或散列表/哈希表类似,但实际上更加灵活和强大。 基本概念 JavaScript中的对象是一组键/值对,其中键是字符串(或符号)类型,而值可以是任何数据类型(包括另一个对象)。对象中的键是唯一的,且不允许重复,但同一个对象的多个键可以指…

    JavaScript 2023年6月10日
    00
  • CesiumJS源码杂谈之从光到 Uniform

    下面是关于“CesiumJS源码杂谈之从光到Uniform”的完整攻略的详细讲解。 前置知识 在讲解这个话题之前,需要对一些基本的知识有一定的了解。包括:WebGL的基础知识、Shader的基础知识、CesiumJS的基础知识等。 从光开始 在WebGL的渲染过程中,光是非常重要的一个环节。CesiumJS中的光源主要有以下几种: sun:太阳光。 moon…

    JavaScript 2023年6月10日
    00
  • Javascript中的arguments对象

    Javascript中的arguments对象 在Javascript中,函数参数可以通过arguments对象访问。这个对象是一个类数组对象,包含了函数调用时所有传入的实参,可以用来访问函数调用时没有在形参列表中声明的参数。 arguments对象的基本用法 arguments对象有如下属性和方法: 属性 callee: 返回当前正在执行的函数的引用,一般…

    JavaScript 2023年5月27日
    00
  • JavaScript格式化数字的函数代码

    下面是详细讲解“JavaScript格式化数字的函数代码”的完整攻略。 什么是JavaScript格式化数字? JavaScript格式化数字的作用在于将数字按照一定的规则格式化为易于识别的格式。比如添加千位分隔符,设定小数点位数,设定前缀或后缀等等。 代码实现 下面通过个人的经验,总结了三种实现方式。 方式一:使用正则表达式 JavaScript格式化数字…

    JavaScript 2023年5月27日
    00
  • js获取本日、本周、本月的时间代码

    下面是获取本日、本周、本月的时间代码的完整攻略。 获取本日时间代码 我们可以使用JavaScript Date对象中的方法获取当前本日的时间。首先,我们需要创建一个Date对象,然后使用该对象的方法获取日期、月份和年份。下面是示例代码: const today = new Date(); const year = today.getFullYear(); c…

    JavaScript 2023年5月27日
    00
  • js unicode 编码解析关于数据转换为中文的两种方法

    下面我将为您详细讲解如何使用 JS Unicode 编码解析数据并将其转换为中文的两种常用方法。 方法一:使用 JavaScript内置函数unescape() 步骤1:将Unicode编码转换为普通字符串 首先,我们需要将包含 Unicode 编码的字符串转换为普通字符串。以字符串\u4f60\u597d作为示例,其所表示的中文意为“你好”。我们可以使用J…

    JavaScript 2023年5月20日
    00
  • 简单易用的倒计时js代码

    下面是一份简单易用的倒计时js代码的攻略: 1. 先导入jQuery库 <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> 2. 创建一个HTML元素作为计数器容器 可以把它放在合适的地方,如下所示: <div id=&quo…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部