快速业务通道

ASP.NET 2.0中层次数据的处理

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
性指定静态值。例如,指定Book元素的TreeNode使用"Book.gif"图像、设置DataMember属性是"Book"的TreeNodeBinding的ImageUrl属性。

下面的例子演示了一个绑定到XML数据的TreeView,数据绑定只应用在XML层次树的特定元素上。

<Databindings>
 <asp:TreeNodeBinding DataMember="Bookstore" Text="Bookstore"
ImageUrl="~/images/xp/folder.gif" />
 <asp:TreeNodeBinding DataMember="genre" TextField="name"
ImageUrl="~/images/xp/folder.gif" />
</Databindings>

XmlDataSource支持XPath属性,你可以用它来过滤数据源所暴露的节点集合。在下面的例子中,Xpath属性被设置为Bookstore/genre[@name=''Business'']/book,以过滤数据源的节点,仅显示"Business"类型下的book元素。在指定XPath属性的语法时要特别小心,否则可能出现数据源任何节点都不暴露的情况(相关的数据绑定控件也不会显示)。

<asp:XmlDataSource ID="MySource" DataFile="~/App_Data/Bookstore.xml"
XPath="Bookstore/genre[@name=''Business'']/book" runat="server"/>

请注意,TreeView树准确地匹配了源XML中的层次。由于这个原因,通常会为了绑定到TreeView而具体构造XML,或者为了绑定到TreeView而使用XSL转换重新把数据构造为适当的分层结构。

<asp:XmlDataSource ID="MySource" DataFile="~/App_Data/Bookstore2.xml"
TransformFile="~/App_Data/Bookstore2.xsl"
XPath="Bookstore/genre[@name=''Business'']/book" runat="server"/>

把表格式数据绑定控件绑定到分层数据源也是可行的,但是它只能显示第一层数据。在下面的例子中,模板化的DataList控件绑定到bookstore XML文件。由于数据源暴露的顶层节点是<book/>节点,DataList可以在自己的ItemTemplate模板中使用Eval数据绑定语法绑定到这些节点的属性。

<asp:DataList id="MyDataList" DataSourceId="MySource" runat="server">
 <ItemTemplate>
<img alt="Cover Image" src=''<%#"images/" + Eval("ISBN") + ".gif"%>''>
<%# Eval("Title") %>
ISBN: <%# Eval("ISBN") %>
Price: <%# Eval("Price") %>
 </ItemTemplate>
</asp:DataList>

虽然只显示一层也是有用的,但是如果能够用嵌套的表格式数据绑定控件来显示下面的层次应该会更好。幸运的是,ASP.NET 2.0允许你实现这种功能。除了Eval数据绑定语法之外,ASP.NET 2.0还提供了基于XPath的数据绑定语法,在实现了IXPathNavigable接口的任何数据项上都可以使用它。有两种可用的表达式类型:

◆XPath(expression, [formatString]) - 根据数据项计算Xpath表达式的值,返回单个值。

◆XPathSelect(expression, [formatString]) - 根据数据项计算Xpath表达式的值,返回节点列表。

下面的例子是建立在前面的例子基础之上的,它用Xpath数据绑定表达式代替Eval表达式绑定到book节点的属性。从表面上看,这样的操作与每个表达式的"@"前缀相比没有什么更多功能,只是用于引用节点属性的Xpath语法。但是,Xpath的真正灵活性就是依赖于这种引用层次中的任意项(不仅仅是属性)的能力的。

这个示例给外部DataList的ItemTemplate模板另外增加了一个DataList,并把这个内部DataList的属性绑定到一个描述当前book节点的chapter子节点的XPathSelect表达式。在内部DataList的ItemTemplate模板中,Xpath数据绑定表达式根据这

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号