自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET的XML數(shù)據(jù)

開發(fā) 后端
本文介紹ASP.NET的XML數(shù)據(jù),以及將數(shù)據(jù)源控件綁定到XML數(shù)據(jù)的方法有兩種:使用任意XML文檔和使用DataSet對象的XML表示形式。

將數(shù)據(jù)源控件綁定到XML數(shù)據(jù)的方法有兩種:使用任意XML文檔和使用DataSet對象的XML表示形式。在前一種情況下,您可以使用分層的數(shù)據(jù)源控件 (XmlDataSource);而在后一種情況下,您可以使用表格式數(shù)據(jù)源組件(DataSetDataSource)??梢酝ㄟ^URL (DataFile屬性)或字符串(Data屬性)來指定XML數(shù)據(jù)??梢允褂肧chemaFile或Schema屬性以相同的方式來提供架構(gòu)信息。

XmlDataSource控件可以綁定到表格式和分層式數(shù)據(jù)綁定控件。XML數(shù)據(jù)的表格式視圖只是處于層次結(jié)構(gòu)給定級別的一系列節(jié)點,而分層式視圖則顯示了完整的層次結(jié)構(gòu),但需要一個多級控件,如TreeView、Menu或其他任何繼承了HierarchicalDataBoundControl類的控件。

相反,DataSetDataSource類只能綁定到GridView和其他列表控件。您不能用DataSet類的活動實例來填充DataSetDataSource。但是,在您成功初始化該控件之后,就可以使用GetDataSet方法檢索內(nèi)部的DataSet對象。
內(nèi)幕初探

數(shù)據(jù)源控件繼承了基類Control,并且具有兩種形式:表格式和分層式。DataSourceControl抽象類充當所有數(shù)據(jù)源控件的基類,并且定義了數(shù)據(jù)綁定控件和基礎數(shù)據(jù)之間的接口。盡管數(shù)據(jù)源控件不具有可視化表現(xiàn)形式,但仍然將其實現(xiàn)為控件,以便使“聲明性持久性”(在請求處理過程中自動實例化)成為.aspx源代碼的原生部分,并且獲得對頁面視圖狀態(tài)的訪問權(quán)限。

數(shù)據(jù)源控件通過一組屬性和方法來公開它的基礎數(shù)據(jù)源的內(nèi)容。這些成員中的一部分是特定于該控件的,而其他成員則為所有源控件所共有,并且被定義為 IDataSource接口的一部分。所有數(shù)據(jù)源控件都實現(xiàn)了IDataSource接口,并且使用該接口的屬性和方法來將綁定的內(nèi)容公開為一組命名的視圖。

IDataSource接口很簡單,它只包含一個事件(DataSourceChanged)和幾個方法(GetView和GetViewNames)。當綁定的數(shù)據(jù)源更改時(例如,當您更改連接字符串時),將引發(fā)DataSourceChanged事件。GetView獲得要檢索的數(shù)據(jù)源視圖的名稱,并且將其作為DataSourceView對象返回。GetViewNames返回表示與該控件關聯(lián)的視圖對象列表的名稱集合。因此,數(shù)據(jù)源控件的內(nèi)部體系結(jié)構(gòu)好像一個命名的視圖集合。

命名的視圖用DataSourceView類的實例表示,后者類似于ADO.NET DataView類。DataSourceView表示已經(jīng)在其中定義了排序、篩選和其他數(shù)據(jù)操作特殊設置的數(shù)據(jù)的自定義視圖。在其核心,數(shù)據(jù)源控件可以簡單地管理從基礎數(shù)據(jù)源加載的數(shù)據(jù)的視圖。

DataSourceView類是與數(shù)據(jù)源控件相關聯(lián)的所有視圖的基類。數(shù)據(jù)源控件中的視圖數(shù)量取決于連接字符串、特征以及基礎數(shù)據(jù)源的實際內(nèi)容。

CanDelete Boolean 屬性。指示是否允許對基礎數(shù)據(jù)源進行刪除操作。通過調(diào)用 Delete 方法進行刪除。
CanInsert Boolean 屬性。指示是否允許對基礎數(shù)據(jù)源進行插入操作。通過調(diào)用 Insert 方法進行插入。
CanPage Boolean 屬性。指示基礎數(shù)據(jù)源是否支持分頁。
CanRetrieveTotalRowCount Boolean 屬性。指示基礎數(shù)據(jù)源是否能夠檢索數(shù)據(jù)行(而不是數(shù)據(jù))的總數(shù)。
CanSort Boolean 屬性。指示是否能夠存儲視圖中的數(shù)據(jù)。
CanUpdate Boolean 屬性。指示是否允許對基礎數(shù)據(jù)源進行更新操作。通過調(diào)用 Update 方法進行更新。
Name 字符串屬性。返回當前視圖名。
SortExpression 字符串屬性。獲取并設置用于創(chuàng)建基礎數(shù)據(jù)排序視圖的排序表達式。
Delete 方法,執(zhí)行與視圖相關數(shù)據(jù)的刪除操作。
Insert 方法,執(zhí)行與視圖相關數(shù)據(jù)的插入操作。
Select 方法,返回一個枚舉對象(以基礎數(shù)據(jù)源存儲中包含的數(shù)據(jù)進行填充)。
Update 方法,執(zhí)行與視圖相關數(shù)據(jù)的更新操作。
簡化的數(shù)據(jù)綁定語法

無可否認,數(shù)據(jù)綁定方面的重大更改就是引入了數(shù)據(jù)源控件。那么,對于以前支持的數(shù)據(jù)綁定表達式而言,會發(fā)生什么情況呢?該功能在ASP.NET 2.0中保持不變,但所使用的語法已經(jīng)進行了簡化,不像原來在ASP.NET版本1.x中那樣繁瑣了。

在ASP.NET 1.x中,您通常使用靜態(tài)方法DataBinder.Eval將數(shù)據(jù)存儲區(qū)字段晚期綁定到對象屬性,如下面的示例所示:

  1. <%# DataBinder.Eval(Container.DataItem, fieldName, formatString) %> 

Container.DataItem表達式引用在其上計算該表達式的對象。該表達式通常是一個字符串,該字符串具有要在數(shù)據(jù)項對象上訪問的字段的名稱。通常,該表達式可以包含索引和屬性名稱。這些常用代碼可能頻繁地在頁面的同一表單中重復使用。只有表達式和格式字符串各不相同。ASP.NET 2.0支持經(jīng)過簡化的語法,如下面的代碼片段所示:

  1. <%# Eval(fieldName, formatString) %> 

當頁面被編譯以供使用時,會將Eval調(diào)用作為一個獨立調(diào)用插入該頁面的源代碼中。下面的代碼可以使您了解實際發(fā)生的事情:

  1. object o = Eval(fieldName); string result = Convert.ToString(o); 

該調(diào)用的結(jié)果被轉(zhuǎn)換為字符串并分配給一個數(shù)據(jù)綁定文本控件(它是DataBoundLiteralControl類的實例)。最后,將數(shù)據(jù)綁定文本插入該頁面的控件樹中。在ASP.NET 2.0中,Page類新增了一個名為Eval的受保護方法,該方法可確定當前的數(shù)據(jù)項對象,并調(diào)入原來的DataBinder.Eval靜態(tài)方法。

除了DataBinder類,ASP.NET 2.0還提供了一個對象,該對象能夠綁定到針對實現(xiàn)IXPathNavigable接口的對象而執(zhí)行的XPath表達式的結(jié)果。該類為 XPathBinder,并且與DataBinder起到相同的作用,不同之處在于它在XML數(shù)據(jù)上工作:

< %# XPath("Orders/Order/Customer/LastName") %>

與Eval一樣,該表達式中的XPath關鍵字是Page類上的一個新的受保護方法。它可以調(diào)入靜態(tài)方法XPathBinder.Eval。在內(nèi)部,XPathBinder.Eval從數(shù)據(jù)源中獲取一個導航器對象,并且計算指定的表達式。

XPathBinder類還具有一個Select方法。該方法可以執(zhí)行XPath查詢,并檢索節(jié)點集(XML節(jié)點的可枚舉集合)。該集合可以作為晚期綁定值分配給像Repeater控件這樣的數(shù)據(jù)綁定控件。對于該方案,也存在等效的簡化語法:

  1. <asp:Repeater 
  2. runat="server" 
  3. DataSource='<%# XPathSelect("orders/order/summary") %>' 
  4. > 
  5. ...  
  6. </asp:Repeater> 

XpathSelect是您在數(shù)據(jù)綁定表達式中使用的關鍵字,用于指示在容器對象上執(zhí)行的XPath查詢的結(jié)果。如果該容器對象未實現(xiàn)IXPathNavigable,則會引發(fā)異常。

【編輯推薦】

  1. ASP.NET的DataList和Repeater控件
  2. 淺析ASP.NET的IIS映射
  3. 概述ASP.NET狀態(tài)類型
  4. 淺談ASP.NET和Web服務器
  5. ASP.NET的EnableViewState屬性
責任編輯:佚名 來源: IT168
相關推薦

2009-07-23 14:08:58

2009-07-27 14:46:16

XML和ASP.NET

2009-07-23 15:18:30

創(chuàng)建XML Web服務ASP.NET

2009-07-23 15:11:43

XML Web服務方法ASP.NET

2009-07-28 16:29:06

XML Web服務ASP.NET構(gòu)造

2009-07-28 17:34:28

ASP.NET XML

2012-04-28 11:07:15

2009-07-22 17:45:35

ASP.NET教程

2009-09-04 13:11:25

ASP.NET生成XM

2009-07-28 17:28:49

XML Web服務使用ASP.NET

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入門教程

2010-03-12 09:38:58

2009-07-20 17:12:17

ASP.NET訪問數(shù)據(jù)

2009-12-25 10:36:10

ASP.NET 和 X

2009-02-05 13:40:03

TreeviewXMLASP.NET

2009-07-27 10:35:33

TypeConvertASP.NET

2009-07-29 11:19:03

JavaScriptASP.NET

2009-07-29 14:52:12

IScriptContASP.NET
點贊
收藏

51CTO技術棧公眾號