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

yizhihongxing

下面开始详细介绍“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学习笔记(十) js对象 继承

    下面是“javascript学习笔记(十) js对象 继承”的攻略。 一、对象的基础知识 在JavaScript中,对象是一种键-值对的数据结构。而对象的键和值通常称作属性和方法。我们可以使用对象字面量定义一个简单的对象,如下所示: var person = { name: ‘Jack’, age: 20, sayHi: function() { conso…

    JavaScript 2023年5月27日
    00
  • Javascript图片上传前的本地预览实例

    下面是“Javascript图片上传前的本地预览实例”的完整攻略。 知识储备 在开始我们的实例之前,需要对以下知识进行了解: 用户通过 <input type=”file”> 选择本地图片,设置 onchange 事件来获取图片的文件信息; 利用 FileReader 对文件进行读取,获取读取后的文件对象; 将文件对象转化为图片的 url 地址,…

    JavaScript 2023年6月11日
    00
  • Html5页面内使用JSON动画的实现

    下面我将详细讲解HTML5页面内使用JSON动画的实现攻略,包括以下内容: 前置技能要求 JSON动画的实现步骤 示例说明 前置技能要求 在学习JSON动画实现之前,建议您掌握以下技能: HTML/CSS基础 JavaScript基础 JSON格式的理解及使用 JSON动画的实现步骤 以下为HTML5页面内使用JSON动画实现的步骤: 首先,在HTML文件中…

    JavaScript 2023年5月27日
    00
  • JavaScript 学习笔记之操作符(续)

    JavaScript 学习笔记之操作符(续) 前言 在之前的文章中,我们已经讲解了 JavaScript 中的基本操作符,本文将延续该话题,再次强调一些高级操作符的使用方法。 递增(++)和递减(–) ++ 和 — 操作符用于将变量的值加一或减一。当它们出现在变量前面时,会先进行加减操作,再将修改后的值赋给变量。如果它们出现在变量的后面,则先将变量的值赋…

    JavaScript 2023年5月18日
    00
  • 如何在JavaScript中使用localStorage详情

    当我们在客户端开发中需要在用户的设备上存储一些数据时,可以使用localStorage。localStorage是HTML5的一个新特性,它允许你在客户端存储名称/值对,并且还支持在不同的浏览器标签之间共享数据。下面是在JavaScript中使用localStorage的详细攻略: 一、localStorage的基本使用 首先在JavaScript中使用lo…

    JavaScript 2023年6月11日
    00
  • 学习js所必须要知道的一些

    学习JavaScript所必须要知道的一些攻略 简介 学习JavaScript(以下简称JS)时,需要一些基础知识,其中包括语法、DOM操作、Ajax、闭包等等。下面将详细介绍学习JS的一些必备知识。 1. 语法 1.1 数据类型 JS包含7种不同的数据类型,分为原始类型和对象类型。原始类型包括: 数字(Number):整数或浮点数 字符串(String):…

    JavaScript 2023年5月28日
    00
  • DOM基础教程之事件类型

    下面是关于“DOM基础教程之事件类型”的完整攻略: 1. 什么是事件? 事件是指用户在与页面进行交互时所发生的情况,如鼠标点击、键盘敲击、表单提交等。开发者可以通过JavaScript代码来响应这些事件,从而实现与用户进行有效的交互。 2. 事件类型 DOM中常见的事件类型有: 鼠标事件:onclick, ondblclick, onmousedown, o…

    JavaScript 2023年6月10日
    00
  • JavaScript数组实现扁平化四种方法详解

    当我们需要处理嵌套的数组时,可能会遇到需要将它扁平化的情况。JavaScript提供了四种方法来实现数组的扁平化。 方法一:使用reduce方法 reduce() 方法对数组中的每个元素执行一个由您定义的函数,并将其输出为单个值。 所以使用reduce可以将嵌套的数组扁平化。 代码如下: function flatten(arr) { return arr.…

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