zoukankan      html  css  js  c++  java
  • 绑定XmlDocument对象

    将一个XmlDocument对象绑定到DataSet中以便将它绑定到控件上。
    by Dan Wahlin

    数据绑定是.NET平台上的一个强大功能,它能使你将不同的数据源绑定到DataGrid、DataList和Repeater控件上。将DataTable、ArrayList或者Hashtable这类数据源绑定到控件上是非常容易的,但你可能经常需要将它们绑定到一个XmlDocument上。这种情况尤其体现在你使用的组件返回的是一个XmlDocument而不是来自某个方法的一个DataSet时。

    虽然由于XmlDocument对象不支持IList等接口而使你无法直接将它绑定到控件上,但是实现绑定并不复杂。事实上,你只需编写几行代码便可将它绑定到一个DataSet中,然后通过DataSet将它绑定到其他控件上。

    它的诀窍在于使用了System.Xml命名空间下的XmlNodeReader类。这个特定的类是从XmlReader中继承而来的,而且它能够将XmlDocument导入到一个DataSet的ReadXml()方法中。之后你便可以将这个DataSet绑定到各类控件中了。XmlNodeReader负责将XML数据从XmlDocument中的某个特定节点中导出来。数据流开始的节点会被输送到XmlNodeReader的构造器中:

    [C#]

    public XmlNodeReader(
                XmlNode node
                );

    [VB.NET]

    Public Sub New( _
                ByVal node As XmlNode _
                )
                

    XmlDocument的根元素(引用自DocumentElement属性)可以被传入XmlNodeReader的构造器中以防整个XmlDocument需要被转化为XML数据流。以下代码说明如何通过XmlNodeReader类来将一个XmlDocument转化为一个DataSet(DataSet中的一个DataTable会被绑定到一个DataGrid服务器控件中):

    [C#]

    private void Page_Load(object sender,
                System.EventArgs e) {
                XmlDocument doc = new XmlDocument();
                doc.Load(Server.MapPath("Orders.xml"));
                XmlNodeReader reader = new XmlNodeReader(doc);
                DataSet ds = new DataSet();
                ds.ReadXml(reader); 
                reader.Close();
                dg.DataSource = ds.Tables[0].DefaultView;
                dg.DataBind();
                }

    [VB.NET]

    Private Sub Page_Load(sender As Object, e _
                As System.EventArgs)
                Dim doc As New XmlDocument()
                doc.Load(Server.MapPath("Orders.xml"))
                Dim reader As New XmlNodeReader(doc)
                Dim ds As New DataSet()
                ds.ReadXml(reader)
                reader.Close()
                dg.DataSource = ds.Tables(0).DefaultView
                dg.DataBind()
                End Sub
                

    虽然前面代码中所显示的XmlDocument对象是手动创建的,但事实上从一个方法中返回的对象是很容易实现绑定的。

    将XmlDocument对象转化成DataSet的方法不止一个,但使用XmlNodeReader类会使转化过程更快更高效。

    你可以点此浏览将一个XmlDocument绑定到DataGrid的范例程序。

    关于作者:

    Dan Wahlin著有XML for ASP.NET Developers(Sams)一书,并创办了Wahlin Consulting公司,这家公司主要致力于XML和Web Service的咨询和培训。Dan也管理XML for ASP.NET Developers网站:www.XMLforASP.NET。要了解更多信息,请访问www.xmlforasp.net/content.asp?content=dan

  • 相关阅读:
    ES 2016+
    git-svn for mac
    Linux系统下安装rz/sz命令及使用说明
    Nginx location指令匹配顺序规则
    nginx修改配置后不生效的问题
    ssh and scp从远程服务器下载文件
    安装yii2 框架遇到的问题
    php添加openssl扩展
    GitHub Token for composer
    centos7+nginx+php+mysql环境搭建
  • 原文地址:https://www.cnblogs.com/ghx88/p/425771.html
Copyright © 2011-2022 走看看