GridView中数据行批量删除的实现

2014-03-02 08:40陈印
四川职业技术学院学报 2014年1期
关键词:批量单元格数据源

陈印

(四川职业技术学院计科系,四川 遂宁 629000)

GridView中数据行批量删除的实现

陈印

(四川职业技术学院计科系,四川 遂宁 629000)

阐述了在ASP.NET中如何对对GridView的数据行新增复选、全选和反选功能,以及如何从对GridView中获取各数据行的选中标识并将选中的数据行进行批量删除的方法.

ASP.NET;GridView;数据;遍历

1 引言

2 GridView中数据行的操作

2.1 GridView的行列结构

2.1.1 行(Row)

GridView由行集合(Rows)构成,其中的行是GridViewRow类型的对象.GridViewRow行分为DataRow数据行)、Header(标题行)、Footer(尾部行)等六种类型,真正与数据库中的数据行相关的是DataRow.通过GridView绑定事件获取到的行将根据实际情况会包含不同类型的行,而在GridView的Rows集合中包含的全部是数据行DataRow.

2.1.2 列(Cell)

GridViewRow由列集合(Cells)构成.GridView中的列是TableCell类型的对象.TableCell列是一种容器对象,具有最基本的属性Text,用于设置或获取单元格中的数据;此外,列中还可以使用其他服务器或 Html控件对象,如Image、Label、TextBox、CheckBox等.TableCell 中的Controls集合可用于获取或设置该单元格中的所有控件(以便于找到需要的控件并转换成指定的类型来获取相关数据)。

2.2 复选列的设置与状态的判定

在GridView中,可以添加模板列,只需在模板列中添加复选框控件CheckBox即可实现行的复选功能.由于数据行可以通过其Cell集合获取该行所容纳的控件,因此可以轻而易举地取出当前行的复选框控件并根据其Checked属性判定其是否选中.

值得注意的是,本文论述的“选中”是通过CheckBox的状态来标识的,与GridView的Data-ControlRowState.Selected所表达的选中行是两个不同概念.GridView不允许同时将多个列置为选中状态的.

2.3.4 加样回收试验 取编号S9的和血胶囊内容物6份,每份1.5 g,精密称定,制备成供试品溶液,分别精密加入浓度为595.2μg·mL-1的5-羟甲基糠醛对照品溶液0.40 mL,浓度为284.2μg·mL-1的苍术素对照品溶液0.36 mL,挥干溶剂,按“2.2.3”项制备加样回收供试品溶液,分别精密吸取10μL,注入液相色谱仪,测定,计算加样回收率。结果见表1、表2。

2.3 GridView 的数据行的遍历

由于GridView 的数据行集合可以通过Grid-View 的Rows 属性来获取,因此,遍历GridView 的数据行其实就是遍历其Rows 集合.C# 中对集合对象的遍历方法很多,可以使用for 循环,for each循环等等.如果使用for each 循环,需注意遍历对象的类型为GridViewRow.

只要能遍历数据行,就可以按照2.2所介绍的方法对G r i d V ie w中的数据行逐行进行处理,实现对所有选中的行进行批量删除的功能.

2.4 GridView与数据源的关系

GGridView 是数据呈现控件,它与数据源控件(如SqlDataSource 等)有密切的联系.GridView 中呈现的数据来自于数据源的查询命令SelectCom-mand 所查询到的结果集,而GridView 所提供的添加、修改、删除则是通过传递相关命令参数分别自动调用数据源的插入命令InsertCommand、修改命令UpdateCommand 以及删除命令DeleteCommand来实现的,GridView 本身并不具有对数据库进行直接操作的能力.

因此,当GridView 通过DeleteRow()方法删除数据时,实际上会自动传递参数并调用数据源的删除命令对数据库中的表记录执行删除操作,前提是数据源需配置相应的删除命令.

3 案例

使用SqlDataSource(实例名:sds)作为数据源,查询学生表的数据,并自动配置删除学生记录命令;使用GridView(实例名:gv)呈现学生表数据,每行数据前(首列)添加模板列,在该列添加复选框CheckBo(实例名:checkRow),用于标识数据行的选中状态;在GridView 的下方放置两个CheckBox,用于实现全选(实例名:checkAll)、反选(实例名:checkReverse)功能;再放置一个LinkButton(实例名:lnkDel),用于实现对选中的数据行执行删除操作.

3.1 全选的实现

在checkAll 控件中设置AutoPostBack 为true,并在其CheckedChanged 事件中参考使用如下代码:

注意:其实第一列单元格作为模板列在设置时只放置了一个CheckBox 控件,按道理,该单元格的Controls 集合只包含1 个控件. 但事实并非如此,通过单元格的Contrls 集合遍历会发现,这其中还包括有其他隐含控件,因此,不能直接使用Controls[0]去确认这个CheckBox,而是要通过循环命令遍历Controls 集合中的每一个控件,通过其UniqueID来识别谁才是这个CheckBox.

3.2 反选的实现

在checkReverse 控件中设置AutoPostBack 为true,并在其CheckedChanged 事件中参考使用如下代码:

3.3 数据行的遍历与删除

在lnkDel控件的单击事件中参考使用如下代码:

4 综述

本文通过服务器控件在GridView 中实现了复选、全选、反选并将选中的数据行进行批量删除的功能,是对GridView 功能的有效扩充.其实,对数据行进行复选等相关操作不回传至服务器也能实现,即无刷新操作,不过需要开发人员熟悉JavaScript等技术,这属于另一个课题,读者可自行研究.

[1]郭文波. ASP.NET GridView 控件的高级数据绑定与应用[J].电脑编程技巧与维护,2012,(07).

[2]陈印. ASP.Net 中主控与详细数据管理解决方案[J].四川职业技术学院学报,2009,(3).

The Realization of Data Bulk Deletion in Grid View

CHEN Yin
(Sichuan Vocational and Technical College, Suining Sichuan 629000)

This paper explains how to add some functions such as re election, entire election and anti-election the data of the GridView in ASP.NET, and explains how to get each row of data to identify and delete bulk data.

ASP.NET; GridView; Data; Traversal

TP311.1

A

1672-2094(2014)01-0145-03

责任编辑:张隆辉

2013-11-06

四川省教育厅自然科学基金项目“基于混合算法的物流配送路径优化方案研究”(13ZB0031).

陈 印(1979-),男,四川渠县人,四川职业技术学院计算机科学系副教授.研究方向:计算机软件开发、数据库开发.

猜你喜欢
批量单元格数据源
批量提交在配置分发中的应用
流水账分类统计巧实现
玩转方格
玩转方格
浅谈Excel中常见统计个数函数的用法
Web 大数据系统数据源选择*
基于不同网络数据源的期刊评价研究
基于真值发现的冲突数据源质量评价算法
在数控车床上批量钻铰孔类工件的实践
基于AUTOIT3和VBA的POWERPOINT操作题自动批量批改