SqlDataSource和ObjectDataSource控件都是平面表格式的數據源控件,操作也相對簡單,在這裡我就不細說了。
ASP.NET中XML數據是怎樣的處理呢?下面就詳細講解。
在這裡我主要談下用於連接XML文件的XmlDataSource和用於連接站點導航數據的SiteMapDataSource這兩個層次數據源控件中XmlDataSource數據綁定到平面表格控件的一些東西。
XmlDataSource控件允許其它控件綁定到XML數據。XmlDataSource支持DataFile屬性,它被用於指定作為輸入(input)的XML數據文件的路徑。你還可以指定TranformFile屬性,給數據應用XSLT轉換;設置XPath屬性來指定需要暴露的數據源節點的子集。
TransformFile="~transXml" XPath="//User">
表格式數據綁定控件綁定到分層數據源也是可行的,但是它只能顯示第一層數據。在下面的demo中,Repeater控件綁定到 temp.xml文件。由於數據源暴露的頂層節點是節點,Repeater可以在自己的ItemTemplate模板中使用Eval數據綁定語法綁定到這些節點的屬性。
標題姓名:Email:
除了Eval數據綁定語法之外,ASP.NET 2.0還提供了基於XPath的數據綁定語法,在實現了IXPathNavigable接口的任何數據項上都可以使用它。這裡介紹兩種常用的表達式類型:
◆XPath(expression, [formatString]) - 根據數據項計算Xpath表達式的值,返回單個值。
◆XPathSelect(expression, [formatString]) - 根據數據項計算Xpath表達式的值,返回節點列表。
下面我們來看看使用Xpath數據綁定方法的優勢,通過一個demo來說明。
Repeater的ItemTemplate模板另外增加了一個Repeater,並把這個內部Repeater的屬性綁定到一個描述當前User節點的Reply子節點的XPathSelect表達式。在內部Repeater的ItemTemplate模板中,Xpath數據綁定表達式根據這些"Reply"內容節點來計算值。ASP.NET 2.0利用這種技術,使你能夠通過組合表格式數據綁定控件簡便地構造出豐富的、分層的數據顯示方式。