`
hugh-lin
  • 浏览: 73421 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

实现GridView控件的删除多条记录功能系列(2)

阅读更多
    在上一篇中,我们已经开发了需要的CheckBox控件,其位于HughLin.dll中。在本篇我们将讲解如何使用该控件,进行删除多条记录功能。
    首先,在你的网站的Web.config文件中配置对该控件的引用。
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.web>
        
<pages>
            
<controls>
                
<add namespace="HughLin.Web.UI.WebControls" tagPrefix="hlAsp" assembly="HughLin"/>
           
</controls>
        
</pages>
</system.web>
在你的aspx文件中,使用如下:
<asp:LinkButton ID="DeleteUsers" runat="server" OnClientClick="if (AspNetV2_CheckHasData('UserCheckBoxGroup1')) {return confirm('您确定要删除所选用户吗?');};else {alert('您还未选择用户!');return false;}" OnClick="DeleteUsers_Click"  CausesValidation="false">删除用户</asp:LinkButton>

 1<asp:GridView ID="EmployeeGrid" runat="server" AutoGenerateColumns="False" DataKeyNames="UserName"
 2            DataSourceID="EmployeeGridDataSource">
 3            <Columns>
 4                <asp:TemplateField>
 5                    <HeaderTemplate>
 6                        <hlAsp:CheckBox ID="SelectAll" runat="server" Group="UserCheckBoxGroup1" IsParent="true"
 7                            Text="全选" />
 8                    </HeaderTemplate>
 9                    <HeaderStyle Width="50px" />
10                    <ItemStyle Width="50px" />
11                    <ItemTemplate>
12                        <hlAsp:CheckBox ID="UserNameCheckBox" runat="server" Group="UserCheckBoxGroup1" BindedValue='<%# Eval("UserName") %>' />
13                    </ItemTemplate>
14                </asp:TemplateField>
15                <asp:BoundField DataField="RealName" HeaderText="姓名" SortExpression="RealName">
16                    <HeaderStyle Width="100px" />
17                    <ItemStyle Width="100px" />
18                </asp:BoundField>
23              <asp:BoundField DataField="Email" HeaderText="电子信箱" SortExpression="Email">
24                    <HeaderStyle Width="160px" />
25                    <ItemStyle Width="160px" HorizontalAlign="left" />
26                </asp:BoundField>
27            </Columns>
28        </asp:GridView>
29<asp:ObjectDataSource ID="EmployeeGridDataSource" runat="server" SelectMethod="GetAllEmployees"
30        TypeName="EmployeeBLL">
31 </asp:ObjectDataSource>
在你的aspx.cs文件中实现删除方法DeleteUsers_Click
 1   // 删除用户
 2    protected void DeleteUsers_Click(object sender, EventArgs e)
 3    {
 4        EmployeeData employeeData = new EmployeeData();
 5
 6        // 获取被选中的用户名集合
 7        foreach (GridViewRow row in EmployeeGrid.Rows)
 8        {
 9            TableCell cell = row.Cells[0];
10            HughLin.Web.UI.WebControls.CheckBox userNameCheckBox = (HughLin.Web.UI.WebControls.CheckBox)cell.FindControl("UserNameCheckBox");
11            if (userNameCheckBox.Checked)
12            {
13                string userName = userNameCheckBox.BindedValue;
14                EmployeeData.EmployeeRow dataRow = employeeData.Employee.NewEmployeeRow();
15                dataRow.UserName = userName;
16                employeeData.Employee.Rows.Add(dataRow);
17                dataRow.AcceptChanges();
18                dataRow.Delete();
19            }

20        }

21        bool flag = (new EmployeeBLL()).DeleteEmployee(employeeData);
22        if (flag)
23        {
24            EmployeeGrid.DataBind();
25        }

26    }
    我在此使用的是强类型的DataSet:EmployeeData,该DataSet中有一个数据表Employee,该数据表包含列:UserName,RealName,Email。
    你可以在App_Code文件夹中添加该数据集。并添加EmployeeBLL.cs文件,代码如下:
 1    /**//// <summary>
 2    /// 删除员工数据
 3    /// </summary>
 4    /// <param name="employeeData">员工数据集合</param>
 5    /// <returns>删除是否成功</returns>

 6    public bool DeleteEmployee(EmployeeData employeeData)
 7    {
 8        bool flag = false;
 9        IDbTransaction tran = null;
10        string[] sourceColumns = 
11            new string[] { employeeData.Employee.UserNameColumn.ColumnName };
12        try
13        {
14            AdoHelper adoHelper = AdoHelper.CreateHelper(DbUtil.DbProvider);
15            IDbCommand insertCommand = null;
16            IDbCommand updateCommand = null;
17            IDbConnection conn = adoHelper.GetConnection(DbUtil.ConnectionString);
18            conn.Open();
19            tran = conn.BeginTransaction();
20            IDbCommand deleteCommand = adoHelper.CreateCommand(conn, "DeleteEmployee", sourceColumns);
21            deleteCommand.Transaction = tran;
22            adoHelper.UpdateDataset(insertCommand, deleteCommand, updateCommand, employeeData, employeeData.Employee.TableName);
23            tran.Commit();
24            flag = true;
25        }

26        catch
27        {
28            try
29            {
30                if (tran != null)
31                {
32                    tran.Rollback();
33                }

34            }

35            catch
36            {
37            }

38        }

39        return flag;
40    }
    本程序使用了GotDotNet的DataAccess Application Block 3.0控件,该控件及其使用方法可以到www.gotdotnet.com去下载。
    不过,在使用的过程,我发现如果PostBack后CheckBox控件的选择状态不能保存。美中不足,为此我改进了CheckBox控件。在下一篇中,我将发布该解决方案,这又将设计到另一个控件的开发。
分享到:
评论

相关推荐

    GridView控件的概述

    ### GridView控件的概述 #### 一、简介 在ASP.NET Web应用程序开发中,`GridView`控件扮演着至关重要的角色。它不仅被广泛应用于数据的显示,而且因其丰富的特性和灵活性,在各种复杂的数据交互场景中都有着出色的...

    【ASP.NET编程知识】GridView控件实现数据的显示和删除(第8节).docx

    ASP.NET 编程知识 - GridView 控件实现数据的显示和删除 本节学习内容是新闻列表的实现,使用分页功能一个页面显示 4 条新闻。在新闻显示页面,添加一个字段“删除”,运行时,单击该行的“删除按钮时”,弹出...

    C# GridView+CheckBox删除记录

    特别是在涉及到多条记录的管理时,利用CheckBox来辅助用户选择需要操作的数据项变得尤为实用。本文将详细介绍如何在C#环境下使用GridView控件结合CheckBox实现对数据库中记录的删除功能。 #### 一、项目搭建 1. **...

    Gridview控件的使用详解

    - **复选框**:在 Gridview 中添加 CheckBox 控件,可以方便地让用户选择多条记录。这对于批量操作非常有用,比如批量删除或修改记录。 **6. 鼠标移到 GridView 某一行时改变该行的背景色** - **改变背景色**:当...

    GridView实现增删改查

    对于“删除修改每一条记录”,GridView提供了内置的行编辑和删除功能。开启这些功能,只需设置GridView的AllowEditing和AllowDeleting属性为true。然后,为Edit和Delete按钮绑定适当的事件处理程序,如RowEditing、...

    新闻管理模块设计GridView控件与ADONET高级应用.pptx

    此外,为了实现新闻管理功能,可以使用GridView控件结合数据源控件,通过预定义的查询、修改和删除语句,通过点击GridView中的按钮来触发对新闻条目的相应操作,如修改新闻内容、删除新闻或者查看详细信息。...

    GridView 帮你了解控件

    GridView由一系列行和列组成,其中每一行代表数据源中的一条记录,而每一列则对应记录的字段。默认情况下,GridView会为每一条记录生成一个模板列,用于显示字段值。 3. 数据绑定: 使用GridView的第一步通常是将...

    GridView结合CheckBox实现多条删除.docx

    这个文档标题提到的“GridView结合CheckBox实现多条删除”就是一种常见的场景,它涉及到GridView控件和CheckBox控件的结合使用,以允许用户选择多个记录进行批量操作。 GridView是ASP.NET中一个强大的数据绑定控件...

    牛人GridView控件72般经典绝技

    以上只是部分GridView的使用技巧,实际应用中,开发者还可以结合其他ASP.NET控件和服务器端事件,以及前端技术,实现更多复杂的功能和定制化的用户体验。对于初学者来说,熟练掌握这些技巧将极大地提升开发效率。

    GridView使用集合

    一、表头表尾 1、自定义多行表头,列合并,行合并 2、删除表身指定列、行 3、固定表头,向下拉动滚动条时,表头固定不动 4、表脚行统计,总计、平均值 二、导入导出 ...根据主键多条记录删除,单条记录删除。

    asp.net GridView控件中实现全选的解决方案

    在实际应用中,常常需要提供全选功能,以便于用户一次性选择多条记录进行批量操作,如删除、修改等。本文将探讨两种在 GridView 控件中实现全选功能的解决方案。 **第一种:利用客户端控件实现全选** 这种方法通过...

    浅析五大ASP.NET数据控件

    首先,GridView控件是用于显示多条记录的表格形式的数据控件,它支持排序、分页、编辑和删除功能。由于其功能强大且易于使用,GridView通常是数据呈现的首选。在.NET 2.0及更高版本中,GridView控件增加了对数据源...

    GridView 72般绝技.pdf

    - 在GridView控件中设置`AllowSorting`属性为`True`。 - 可通过前端JavaScript或者后端代码实现切换排序方向的功能。 #### 4. GridView和下拉菜单`DropDownList`结合 - **功能概述**:在GridView中集成下拉菜单,...

    gridview使用大全

    在ASP.NET开发中,GridView控件是一个非常常用的数据展示组件,尤其在网页表格数据的处理上,它提供了丰富的功能和自定义选项。本资源“gridview使用大全”旨在全面讲解如何充分利用GridView控件来实现各种复杂的...

    GRID控件删除之前确认

    ### GRID控件删除之前确认 在开发Web应用程序时,经常需要用到GRID控件来展示和管理数据。为了提高用户体验和防止误操作,实现删除操作前的确认功能是非常必要的。本篇文章将详细探讨如何在GRID控件中实现删除操作...

    Gridview中checkBox选择数据的使用

    在Gridview中添加CheckBox可以方便地让用户选择一条或多条记录。 #### 如何在Gridview中使用CheckBox 在Gridview中使用CheckBox通常涉及到以下几个步骤: 1. **在Gridview中添加CheckBox列**:首先需要在Gridview...

    GridView使用全集(主要是方法实现讲解)

    在ASP.NET Web应用程序中,GridView控件是一种常用的数据展示组件,它可以轻松地绑定到数据源并展示数据。本文将深入探讨GridView的各种使用方法,包括代码分页、保存和恢复CheckBox的状态、排序、与DropDownList和...

    GridView和CheckBox结合

    将两者结合使用,可以实现对多条记录的批量操作,如删除、编辑等。本文将基于提供的代码示例来详细解析`GridView`与`CheckBox`结合使用的具体实现方法。 #### 二、准备工作 **1. 数据库准备:** - 使用SQL Server...

    gridview对Access访问的练习

    对于多条记录的删除,可能需要通过选择多个行,然后统一执行删除操作。 在列表页面上, GridView可以展示数据列表,每行代表一条记录,用户可以浏览、选择和操作这些记录。这需要在后台代码中处理GridView的事件,...

Global site tag (gtag.js) - Google Analytics