15.3 XmlDataSource数据源控件
XmlDataSource控件是ASP.NET中提供的专门用于访问XML文件的数据源控件。它特别适用于分层的ASP.NET服务器控件,如TreeView或Menu控件。它支持使用XPath表达式来实现筛选功能,并允许对数据应用XSLT转换。同时允许通过保存更改后的整个XML文档来更新数据。
XmlDataSource控件与前面介绍的SqlDataSource工作原理一样,不过XmlDataSource控件还是有以下两点不同:
● XmlDataSource控件从XML文件中获取信息,而不是从数据库中获取信息。
● XmlDataSource控件返回的信息是分层次的,而且级别可以是无限级别的,而SqlDataSource返回的信息只能是一个表格形式的。
除了以上两点不同,XmlDataSource控件同其他数据源控件的特性和用法一样。
可以利用XmlDataSource控件把XML数据绑定到GridView控件等表格控件中。要在像GridView控件这样的表格控件中显示XML数据,就必须使用XPath来指定要在GridView控件中显示的数据项。这是因为XML文件是有层次的,XmlDataSource控件只是把数据从XML文件中获得,并不能为GridView控件指明要显示的数据项,因此需要在GridView控件的列定义中利用XPath来指明要显示的数据项。
而利用XmlDataSource控件把XML数据绑定到TreeView控件等层次控件中就比较容易,由于TreeView控件是把数据分层次显示的,与XML描述的形式相似,因此这些控件显示XML数据就比较容易。
【实例15-8】XmlDataSource控件的使用
本实例实现如何利用XmlDataSourc控件把XML文件中的数据显示在GridView控件中,具体步骤如下:
01 启动Visual Studio 2012,创键一个ASP.NET Web空应用程序,命名为“实例15-8”。
02 在该网站中创建一个XMLFile.xml文件,文件中的内容与“实例15-2”中的XMLFile.xml文件相同。
03 在网站根目录下创建一个名为Default.aspx的窗体文件,单击网站目录下的Default.aspx文件,进入“视图编辑”界面,从工具箱中拖动一个GridView控件、一个XmlDataSourc控件到“设计视图”。
04 将鼠标移到GridView1控件上,其上方会出现一个向右的黑色小三角。单击它,弹出“GridView任务”列表。在“选择数据源”下拉列表中选中XmlDataSourc1,如图15-17所示。
图15-17 GridView任务
05 将鼠标移到XmlDataSourc1控件上,其上方会出现一个向右的黑色小三角。单击它,弹出“XmlDataSourc任务”列表,选择“配置数据源”选项,弹出如图15-18所示的“配置数据源”对话框。
图15-18 “配置数据源”对话框
06 单击“数据文件”文本框后的“浏览”按钮,弹出如图15-19所示的“选择XML文件”对话框。
图15-19 “选择XML文件”对话框
07 在项目文件夹列表中选择“实例15-8”,在文件夹内容列表中单击XMLFile.xml文件,最后单击“确定”按钮。
08 返回图15-18中单击“确定”按钮完成数据源的配置。
上面的代码中第1行定义服务器列表控件GridView1,设置其数据源控件为XmlDataSource1和禁止自动加载列。第2行~第21行定义GridView1的列设置,这里利用模板列把要显示字段与XML文件中节点对应起来,而数据则通过XPath来获得。其中,第3行~第5行设置模板定义列的标题“编号”,第4行设置XPath来指明要显示的数据项绑定。按照以上的方法依次定义其余的5个数据列并分别设置XPath指定要在GridView控件中显示的数据项。第23行定义一个XML数据绑定控件XmlDataSource1,通过属性DataFile指定要绑定数据文件是XMLFile.xml。
09 打开“GridView任务”列表,选择“自动套用格式”选项,弹出“自动套用格式”对话框,在左边的选择架构列表中选中“蓝黑2”,单击“确定”按钮。
10 按快捷键Ctrl+F5运行程序,结果如图15-20所示。
图15-20 运行结果