ASP.NET – 數(shù)據(jù)綁定
每一個(gè) ASP.NET 網(wǎng)頁表單控件從它的父控件類繼承了 DataBind 方法,它給予了它繼承的能力來綁定數(shù)據(jù)到它屬性中的至少一個(gè)屬性。這就是所謂的簡(jiǎn)單數(shù)據(jù)綁定或者內(nèi)部數(shù)據(jù)綁定。
簡(jiǎn)單數(shù)據(jù)綁定包括將任何實(shí)現(xiàn) IEnumerable 接口的集合(項(xiàng)目集合),或者 DataSet 和 DataTable 類附加到控件的 DataSource 屬性。
另一方面,一些控件可以通過 DataSource 控件綁定記錄,列表,或者數(shù)據(jù)列到它們的結(jié)構(gòu)中。這些控件源自 BaseDataBoundControl 類。這被叫做描述性數(shù)據(jù)綁定。
data source 控件幫助 data-bound 控件實(shí)現(xiàn)了比如排序,分頁和編輯數(shù)據(jù)集合的功能。
BaseDataBoundControl 是一個(gè)抽象類,它通過兩個(gè)抽象類繼承:
- DataBoundControl
- HierarchicalDataBoundControl
抽象類 DataBoundControl 也由兩個(gè)抽象類繼承:
- ListControl
- CompositeDataBoundControl
能夠簡(jiǎn)單綁定數(shù)據(jù)的控件源自 ListControl 抽象類并且這些控件是:
- BulletedList
- CheckBoxList
- DropDownList
- ListBox
- RadioButtonList
能夠描述性數(shù)據(jù)綁定的控件(一個(gè)更復(fù)雜的數(shù)據(jù)綁定)源自抽象類 CompositeDataBoundControl。這是控件是:
- DetailsView
- FormView
- GridView
- RecordList
簡(jiǎn)單數(shù)據(jù)綁定
簡(jiǎn)單數(shù)據(jù)綁定包括只讀選擇列表。這些控件能綁定一個(gè)數(shù)組列或者數(shù)據(jù)庫的字段。選擇列表從數(shù)據(jù)庫中或 data source 中取兩個(gè)值;一個(gè)值用過列表表示而另一個(gè)被認(rèn)為是相應(yīng)顯示的值。
讓我們使用一個(gè)小例子來理解這個(gè)概念。用一個(gè)項(xiàng)目符號(hào)列表和一個(gè) SqlDataSource 控件來創(chuàng)建一個(gè)網(wǎng)頁。配置 data source 控件來從你的數(shù)據(jù)庫中(我們?cè)谥暗恼鹿?jié)中使用相同的 DotNetReferences 表)檢索兩個(gè)值。
為包含的項(xiàng)目符號(hào)列表控件選擇一個(gè) data source:
- 選擇 data source 控件
- 選擇一個(gè)字段來展示,它被叫做數(shù)據(jù)字段
- 選擇值的字段
在下一個(gè)指南中,我們將研究解決數(shù)據(jù)庫,i.e,ADO.NET 的 技術(shù)。
但是,數(shù)據(jù)綁定包括以下對(duì)象:
- 存儲(chǔ)從數(shù)據(jù)庫檢索數(shù)據(jù)的數(shù)據(jù)集。
- 數(shù)據(jù)提供者,它通過使用一個(gè)連接的命令從數(shù)據(jù)庫中檢索數(shù)據(jù)。
- 發(fā)出存儲(chǔ)在 command 對(duì)象中的選擇語句的數(shù)據(jù)適配器;它也能通過發(fā)出 Insert,Delete,和 Updata 語句來更新數(shù)據(jù)庫中的數(shù)據(jù)。
data bonding 對(duì)象間的關(guān)系:
步驟(2):在頁面上添加四個(gè)列表控件,一個(gè) list box 控件,一個(gè) radio button 控件,一個(gè) check box 控件和一個(gè) drop down list 和四個(gè)與這些列表控件一起的四個(gè)表單。在設(shè)計(jì)視圖中頁面應(yīng)該看起來像這樣:
步驟(3):最后,在應(yīng)用程序的例行程序后寫下面的代碼:
觀察以下:
- booklist 類有兩個(gè)屬性:bookname 和 authorname。
- createbooklist 方法是一個(gè)用戶定義的可以創(chuàng)建名為 allboods 的 booklist 類的數(shù)組的方法。
- Page_Load 事件句柄確保了 books 的列表被創(chuàng)建。該列表是 IList 型的,它實(shí)現(xiàn)了 IEnumerable 接口并能和列表控件綁定。Page load 時(shí)間句柄用控件綁定了 IList 對(duì)象bklist。bookname 屬性被展示并且 authorname 屬性被視為這個(gè)值。
- 當(dāng)頁面運(yùn)行時(shí),如果用戶選擇了一本書,則它的名字被選擇并且通過 list 控件被顯示出來,而相應(yīng)的標(biāo)簽顯示作者的名字,它是 list 控件所選擇的相應(yīng)的值。