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