程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET控件開發基礎(20)

ASP.NET控件開發基礎(20)

編輯:關於ASP.NET

上面我們討論了數據綁定控件的做法,但都未涉及到asp.net2.0中數據源控件的用法,讓用慣了數據源控件的人可能感覺不適應。這次我們就開始討論在asp.net2.0中,我們該如何重新定義數據綁定控件。我一直在想,是先討論數據源控件呢,還是先討論數據綁定控件,兩者是密不可分的。在看下文之前,我想大家應該對asp.net2.0中的數據源控件使用的簡易性非常熟悉了。記得園子的開源項目NBear也為大家提供了數據源控件。個人認為數據源控件和數據綁定控件之間存在著一些約定關系,學習還當從易到難,這裡就假定我們對內置的數據源已經能夠熟練的使用了。這裡就看看如果定義新的數據綁定控件.

一.數據綁定控件新做法

1.第一種為純代碼做法,這種做法比較的煩瑣

2.新做法數據綁定控件與數據源控件結合.不同之處則是不需要寫重復代碼,如

<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" AutoGenerateColumns="False">
   <Columns>
     <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" SortExpression="CompanyName" />
     <asp:BoundField DataField="ContactName" HeaderText="ContactName" SortExpression="ContactName" />
   </Columns>
</asp:GridView>

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
   ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString2 %>"
   SelectCommand="SELECT [CompanyName], [ContactName] FROM [Customers]">
</asp:SqlDataSource>

上面的做法是asp.net2.0裡面新增的,如果你沒有學過asp.net1.1而直接學2.0的話,上面的寫法是非常簡單的,沒有寫一行的代碼.

這樣的做法可能會讓人產生以下幾點看法

(1)初學者認為asp.net真的很簡單,是的很簡單,在簡單的同時你也該意識到數據源控件為你做了重復的工作,快速開發的同時你是否該了解下上面的做法是如何實現的

(2)接觸過.net一段時間的人則會認為DataSource數據源控件只是小兒科,大項目怎麼可以這麼做,對其不放心,還是自己手動寫代碼比較放心-_-.

數據源控件好不好用這裡不必討論,但我想大多數人還是向其靠攏的.

二.數據綁定控件相同機制

數據綁定控件需要數據源

(1)在沒有數據源控件之前,數據綁定控件需要先給DataDource屬性賦值獲取數據源,然後執行DataBind()方法

(2)在數據源控件出現之後,數據綁定控件仍然需要數據源,只不過方式發生了變化,不是通過DataDource屬性直接的獲取,而是間接的通過數據源控件獲取,然後幫你自動執行了DataBind()方法

所以這裡需要注意的是,當設置DataDourceID的時候,不需要再調用DataBind()方法,兩種方法不可同時使用

站在使用者的角度,唯一的變化也就是給我們兩種數據綁定做法的選擇.偷懶的我們當然願意選擇後一種,一切交給數據源控件為我們處理.

三.數據綁定控件新的起點

上篇我們講到過BaseDataList類.1.1中的舊的數據綁定控件從此抽象類中繼承下來,而2.0中新的數據綁定控件,並沒有這麼做,而是從BaseDataBoundControl類重新開始,以此為基礎.net為我們定義了一些比較實用的類.當然在.net2.0中,BaseDataList類也提供了DataDourceID屬性,但微軟也很明確的表示讓我們棄用DataGrid,使用GridView.暫時我們先不去想為什麼,只有了解以後,我們才能去比較

在微軟的MSDN上,早就有篇文章介紹ASP.NET2.0和數據綁定控件:新的角度,新的做法 大家可以看看

這次我們只需要了解兩個基類

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved