ASP.NET(C#)中通过GridView控件对X ML数据进行管理
2016-09-18李金峰邹军华胡江峰
◆李金峰 邹军华 胡江峰
ASP.NET(C#)中通过GridView控件对X ML数据进行管理
◆李金峰 邹军华 胡江峰
提出一种通过GridView控件对Xml数据进行管理的基本方法,并就此方法作为例子,详细讲解命令的根本逻辑和含义以及使用范围。
GridView;Xml;数据
10.3969/j.issn.1671-489X.2016.14.033
1 前言
在ASP.NET架构中,GridView控件通常是与SQL数据进行绑定以实现显示数据功能。这种实现方法操作简易,容错性强,使用者不需要掌握太多的数据结构知识。但是在教学中为了能让学习者更好地理解GridView控件从数据源中读取数据的过程和数据存储的结构,使用Xml表作为数据源,其显示方式更加直观,严苛的编辑标准对于初学者的逻辑理解来讲也更加友好。
本文旨在提出一种逻辑较为简单易懂的命令来实现ASP.NET中通过GridView控件来对Xml表内数据进行删改的功能,命令行以易读性为第一标准,使学习者在了解根本数据传递方法之后,能够熟练掌握其命令逻辑,并在不同的环境下得以灵活运用。
2 核心代码分析
XML表结构 为了便于描述,本文采用图1所示的XML文档,该文档的根节点为〈basic〉,其中有两个子节点,分别为〈e0〉和〈e1〉。
图1 Xml文档内容
显示数据 由于显示数据的此段在后续操作中会被多次用到,因此定义一个子函数MyDataBind。首先创建一个数据集,然后读取外部Xml表数据加载至该数据集(Xml文件应与当前页面文件处于同一文件),再将数据集中第一个表,以默认方式作为GridView控件的数据源,最后绑定数据源。代码如下:
删除数据 删除数据时,首先创建一个XmlDocument对象,读取Xml表数据加载至该文档对象,然后查找节点,通过ParentNode中的删除子节点的方法删除找到的节点,最后保存XML文档,刷新数据。整个过程如图2所示。
图2 删除Xml节点流程图
在本例中,〈e1〉节点的数据类型是日期型,精确到“秒”,所以查找节点是通过“SelectSingleNode(″//basic[e1=′″+Grid ViewXmlDelete.Rows[e.RowⅠndex].Cells[3].Text+ ″′]″)”来实现的。
编辑和更新数据 编辑Gridview控件时,只需在RowEditing事件中获取用户选定的行号,然后通过调用MyDataBind函数显示数据。
更新数据时,需要在Gridview控件的RowUpdating事件中创建多个TextBox对象,从而获取在编辑状态时用户动态输入的信息(通过RowIndex和Cells定位,应该注意由于使用了GridView控件内置的编辑和删除按钮,在编辑时,GridView显示表的前两列被更新和取消按钮占用,因此在列定位时应该后移两列),再通过InnerText属性设置其所有子节点的值,最后保存XML文档,取消编辑状态,刷新数据。运行结果如图3所示。
3 总结
图3
使用Xml表作为数据源时,由于与前台程序之间存在一个DataSet缓存区,数据先行载入后可以断开与数据源的连接;而在DataSet中数据的存储结构为同一节点里的所有元素储存在同一张DataTable中,其顺序和Xml表中节点的排列顺序一致。这些特性使得用GridView控件管理Xml表的规范数据时只用短时占用Xml表资源,大部分操作都在页面程序上进行,大大提升了运行速率。■
[1]王辉,等.ASP.NET 3.5(C#)实用教程[M].北京:清华大学出版社,2012.
[2]Harol E R.XML实用大全[M].北京:中国水利水电出版社,2000.
TP311.131
B
1671-489X(2016)14-0033-02
作者:李金峰,惠州城市职业学院(516025);邹军华(通讯作者)、胡江峰,湖北大学教育学院(430062)。