SqlDataSource和ObjectDataSource控制項都是平面表格式的資料來源控制項,操作也相對簡單,在這裡我就不細說了。
在這裡我主要談下用於串連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利用這種技術,使你能夠通過組合表格式資料繫結控制項簡便地構造出豐富的、分層的資料顯示方式。