zoukankan      html  css  js  c++  java
  • ASP.Net中使用XMLDataSource

    在Web开发中,程序和数据库打交道是常有的事情。在平时使用过程中,使用较多的是MS SQLSERVER,因此经常用到SQLDataSource将数据绑定的数据控件上。有时数据量较小,无需要在数据库中创建表来维护,可以考虑使用一些文件报存数据。在Web应用中,XML可作为轻量级的数据库。而读取XML文件中的数据,我么就可以用到XMLDataSource了。

    假设我用一个XML文件存储了省份的信息(这是一个几乎不需要维护的信息),在aspx页面上使用DropDownList控件绑定。首先看VS中如何不需要写代码将数据绑定上去。准备好XML文件(Provice.xml),如下

    <Provinces>
      <provinceItem name="北京" id="1"></provinceItem>
      <provinceItem name="上海" id="2"></provinceItem>
      <provinceItem name="广东" id="3"></provinceItem>
      <provinceItem name="天津" id="4"></provinceItem>
      <provinceItem name="河北" id="5"></provinceItem>
      <provinceItem name="吉林" id="6"></provinceItem>
      <provinceItem name="浙江" id="7"></provinceItem>
      <provinceItem name="湖南" id="8"></provinceItem>
    </Provinces>
    aspx页面上放一个DropDownList,为其选择数据源。在提供的数据源选项中,选择XML文件,选中刚才准备好的XML文件。此时,会让你选择DropDownList的显示字段和值字段(注意,Xml文件中的字段已经被DropDownList解析到了)。选择name为DataTextField,id为DataValueField。配置完成后,在浏览器中预览,发现数据已经绑定到DropDownList上了。但是,按照上面Xml的格式写法,name和id是provinceItem元素的属性。若将Xml改换成下面这种格式(新建一个City.xml文件),用上述同样方法去绑定,在浏览器中查看页面时,发现报错。DataBinding:“System.Web.UI.WebControls.XmlDataSourceNodeDescriptor”不包含名为“cityName”的属性。

    <?xml version="1.0" encoding="utf-8" ?>
    <City>
      <CityItem>
        <cityName>上海市</cityName>
        <cityId>1</cityId>
      </CityItem>
      <CityItem>
        <cityName>杭州市</cityName>
        <cityId>2</cityId>
      </CityItem>
      <CityItem>
        <cityName>长沙市</cityName>
        <cityId>3</cityId>
      </CityItem>
      <CityItem>
        <cityName>长春市</cityName>
        <cityId>4</cityId>
      </CityItem>
      <CityItem>
        <cityName>石家庄市</cityName>
        <cityId>5</cityId>
      </CityItem>
      <CityItem>
        <cityName>天津市</cityName>
        <cityId>6</cityId>
      </CityItem>
      <CityItem>
        <cityName>北京市</cityName>
        <cityId>7</cityId>
      </CityItem>
    </City>
    此时,需要另外一个文件,后缀xslt的文件。它的作用是当作XML文件的模版。XmlDataSource会按照XSLT规定的模板读取并转换XML文档里的数据,而不考虑XML文档里规定的数据结构。下面为City.xml创建一个模版,如下:

    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
    >
        <xsl:output method="xml" indent="yes"/>
    
        <xsl:template match="City">
            <xsl:copy>
                <xsl:apply-templates select="CityItem"/>
            </xsl:copy>
        </xsl:template>
      <xsl:template match="CityItem">
        <CityItem>
          <xsl:attribute name="cityName">
            <xsl:value-of select="cityName"/>
          </xsl:attribute>
          
          <xsl:attribute name="cityId">
            <xsl:value-of select="cityId"/>
          </xsl:attribute>
          
        </CityItem>
      </xsl:template>
    </xsl:stylesheet>
    此后,再次绑定,在选择xml文件时,有一项可供选择转换文件,选中刚才创建的模板City.xslt文件。再次浏览其中浏览网页,完成了City.xml通过XmlDataSource绑定至DropDownList上。



    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    mysqladmin命令的用法
    利用cacti监控多端口memcache
    Msyqlproxy的编译安装
    eclipse下SVN subclipse插件
    Asp.net SqlDataSource用法 插入 更新 删除
    C#的匿名方法
    MDHH使用图解
    SVN入门及配置使用(多平台)
    编写Windows Live Writer插件(1)
    防止事件冒泡
  • 原文地址:https://www.cnblogs.com/gxwang/p/4940865.html
Copyright © 2011-2022 走看看