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的各种数据类型及其使用。 基本数据类型 数字类型(Number) JavaScript中的数字类型包括整数和浮点数,在进行应用开发时可以进行和常见的数学运…

    JavaScript 2023年5月18日
    00
  • 详解WordPress开发中get_current_screen()函数的使用

    当我们开发WordPress主题或插件时,可能需要根据当前页面的信息进行一些处理。此时,可以使用get_current_screen()函数来获取当前页面的信息。本文将详解get_current_screen()函数在WordPress开发中的使用方法。 一、get_current_screen()简介 get_current_screen()函数是Word…

    JavaScript 2023年6月11日
    00
  • 用js的document.write输出的广告无阻塞加载的方法

    使用 JavaScript 的 document.write 输出广告可以实现无阻塞加载的效果,因为在文档加载过程中,浏览器会优先渲染 HTML 和 CSS,而 JavaScript 代码是在页面内容加载完毕后才执行。因此,使用 document.write 的方式来输出广告,可以保证广告内容不会影响页面原有的渲染效果,而且不会阻塞页面的加载过程。 为了进一…

    JavaScript 2023年5月28日
    00
  • JS日期对象简单操作(获取当前年份、星期、时间)

    下面是JS日期对象简单操作的完整攻略: 获取当前年份 获取当前年份可以通过JavaScript中的Date对象和其相关的方法来实现。具体步骤如下: 创建一个Date对象,可以使用new关键字来创建,不传入任何参数即可表示当前日期时间。 const date = new Date(); 使用getFullYear()方法获取当前日期中的年份,返回值是一个四位整…

    JavaScript 2023年5月27日
    00
  • js直接编辑当前cookie的脚本

    为了编辑当前页面的cookie,我们可以利用JavaScript和Document.cookie属性实现。下面是具体步骤: 获取当前cookie字符串 使用document.cookie获取当前页面的cookie字符串。 示例代码: console.log(document.cookie); // 输出当前页面的cookie字符串 编写修改cookie的函数…

    JavaScript 2023年6月11日
    00
  • 简单聊聊Js中的常见错误类型

    简单聊聊Js中的常见错误类型 在Js编程中,我们不可避免地会遇到各种类型的错误。了解这些错误类型及其产生的原因,可以帮助我们更快速地定位错误并解决问题。下面就让我们来简单聊聊Js中的常见错误类型。 1. 引用错误(ReferenceError) 引用错误通常发生在引用未定义的变量或函数时。例如: console.log(a); // Uncaught Ref…

    JavaScript 2023年6月1日
    00
  • jquery对象和javascript对象即DOM对象相互转换

    将jQuery对象转换为DOM对象可以使用get()或[index]方法,将DOM对象转换成jQuery对象可以使用$()或jQuery()方法进行转换。 示例1:将jQuery对象转换成DOM对象 // 创建jQuery对象 var $elem = $(‘<div>’, {text: ‘Hello World!’}); // 将jQuery对象…

    JavaScript 2023年5月27日
    00
  • 基于Tomcat安全配置与性能优化详解

    基于Tomcat安全配置与性能优化详解 安全配置 HTTPS配置 HTTP是明文传输,不安全,而HTTPS通过SSL/TLS进行加密传输,可以提高传输的安全性。因此,我们需要为Tomcat配置HTTPS,具体步骤如下: 生成证书 我们可以通过如下命令来生成证书: keytool -genkey -alias tomcat -keyalg RSA -keyst…

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