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上。
版权声明:本文为博主原创文章,未经博主允许不得转载。
ASP.Net中使用XMLDataSource的更多相关文章
- ASP.net中的Cache使用介绍
1.1.1 摘要(http://www.cnblogs.com/rush/archive/2012/06/30/2571438.html) 最近我们的系统面临着严峻性能瓶颈问题,这是由于访问量增加,客 ...
- ASP.NET中常用的优化性能的方法
1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池( ...
- asp.net中ashx生成验证码代码放在Linux(centos)主机上访问时无法显示问题
最近有个项目加入了验证码功能,就从自己博客以前的代码中找到直接使用,直接访问验证码页面报错如下: 源代码:asp.net中使用一般处理程序生成验证码 Application Exception Sys ...
- ASP.NET中Session的sessionState 4种mode模式
1. sessionState的4种mode模式 在ASP.NET中Session的sessionState的4中mode模式:Off.InProc.StateServer及SqlServer. 2. ...
- Asp.net中存储过程拖拽至dbml文件中,提示无法获得返回值
Asp.net中存储过程拖拽至dbml文件中,提示无法获得返回值,去属性表中设置这时候会提示你去属性表中更改返回类型. 其实存储过程返回的也是一张表,只不过有时候存储过程有点复杂或者写法不规范的话不能 ...
- ASP.NET中后台数据和前台控件的绑定
关于ASP.NET中后台数据库和前台的数据控件的绑定问题 最近一直在学习个知识点,自己创建了SQL Server数据库表,想在ASP.NET中连接数据库,并把数据库中的数据显示在前台,注意,这里的数据 ...
- asp.net中缓存的使用介绍一
asp.net中缓存的使用介绍一 介绍: 在我解释cache管理机制时,首先让我阐明下一个观念:IE下面的数据管理.每个人都会用不同的方法去解决如何在IE在管理数据.有的会提到用状态管理,有的提到的c ...
- ASP.NET中Ajax的用法
在ASP.NET中应用Ajax的格式如下: 前台代码(用JQuery库) $.ajax({ type: "POST", async: true, url: "../Aja ...
- Asp.Net中使用OpenRowSet操作Excel表,导入Sql Server(实例)
有两种接口可供选择:Microsoft.Jet.OLEDB.4.0(以下简称 Jet 引擎)和Microsoft.ACE.OLEDB.12.0(以下简称 ACE 引擎). Jet 引擎大家都很熟悉,可 ...
随机推荐
- Asp.net网站的简单发布
概述 网站是由一个个页面组成的,是万维网具体的变现形式,关于万维网,网页的方面的理论知识,大家可以看一看这篇博客:万维网文档,在这里就不多说了.网站的发布要到达的一个目的就是,别人可以通过浏览器访问该 ...
- 0x00000000该内存不能为read
0X000000存储器不能read解决方案 有这种现象方面,首先,在硬件,这有问题的内存,二,软件,其中有许多问题. 一:先说说硬件: 一般来说,电脑硬件不easy生病.内存故障的可能性并不大(非你的 ...
- 做web项目时对代码修改后浏览器端不生效的应对方法(持续更新)
做web项目时,经常会遇到修改了代码,但浏览器端没有生效,原因是多种多样的,我会根据我遇到的情况逐步更新解决办法 1.运行的时候采用debug模式,一般情况下使用项目部署按钮右边那个按钮下的tomca ...
- ESFramework 开发手册(07) -- 掉线与心跳机制(转)
虽然我们前面已经介绍完了ESFramework开发所需掌握的各种基础设施,但是还不够.想要更好地利用ESFramework这一利器,有些背景知识是我们必须要理解的.就像本文介绍的心跳机制,在严峻的In ...
- HBase系列文章汇总
本文整理汇总了本博客自去年学习HBase以来写的全部关于HBase的相关内容.持续更新中,很多其它内容.敬请关注! 相关知识: 1.<布隆过滤器(Bloom Filter)> 2.< ...
- 【DataStructure】The description of Java Collections Framework
The Java Connections FrameWork is a group of class or method and interfacs in the java.util package. ...
- 大约apache 2.4.X虚拟主机配置问题的版本号后,
重装系统,习惯性下载最新的wamp2.5,在各种配置,然后一切正常反应.数据库,代码. 然后打开浏览器,尼嘛,幸运的是,昨天,与虚拟域,其实403该. apache error log的信息是:AH0 ...
- PHP第七课 使用方法数组2
学习平台: 1.了解数组函数 2.输出随机验证码 1.数组函数: 数组函数: //作用:提供了非常多官方写的非常实用的代码段,提高编写速度. 1.数组的键值操作函数 2.统计数组的元素和唯一性 3.使 ...
- Oracle生成查询包括对应于所有数据表记录语句中指定的字段名
应用:已知的字段名,表中的所有数据的查询数据库中包含的所有数据表的字段名 操作方法:指定字段名,用户数据库表,它可以执行以下查询 --Oracle生成查询包括对应于所有数据表记录语句中指定的字段名 d ...
- SDUT 2894-C(最短spfa)
C Time Limit: 7000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描写叙述 给出一个带权无向图.包括n个点,m条边.求出s,e的最短路.保证最短路存在 ...