




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 ASP.NET ASP.NET 數據庫應數據庫應用程序開發用程序開發ASP.NET 數據庫應用程序開發數據庫應用程序開發主主 編:陳志泊編:陳志泊參與人員參與人員:第第5章章 DataGrid控件與數據操作控件與數據操作 “數據綁定數據綁定”(Databind是使頁面上控件是使頁面上控件的屬性與數據庫中的數據產生對應關系,使得的屬性與數據庫中的數據產生對應關系,使得控件的屬性值與數據庫的變動同步。事實上,控件的屬性值與數據庫的變動同步。事實上,數據綁定時的數據源也可以是數據綁定時的數據源也可以是XML文件、集文件、集合、表達式或函數運行結果,控件的屬性幾乎合、表達式或函數運行結果,控件的屬性
2、幾乎是任意的,這一點比以前的數據綁定有了很大是任意的,這一點比以前的數據綁定有了很大的進步。傳統的數據綁定中,通常只能將顯示的進步。傳統的數據綁定中,通常只能將顯示屬性綁定至數據源,如文本框的屬性綁定至數據源,如文本框的text屬性。屬性。 5.1數據綁定技術概述數據綁定技術概述 數據綁定的用法如下:數據綁定的用法如下:(1綁定屬性:綁定屬性:(2綁定集合:綁定集合:asp:ListBox id=List1 datasource= runat=server(3綁定表達式:綁定表達式:(4綁定函數結果:綁定函數結果:通過使用數據綁定,可以實現以下功能:通過使用數據綁定,可以實現以下功能:(1設置
3、在設置在TextBox、Label、Button或其他控件上顯示或其他控件上顯示的文字。的文字。(2設置設置CheckBox控件的選取狀態。控件的選取狀態。(3如果將用戶的偏好設置存儲在數據庫中,可靈活設如果將用戶的偏好設置存儲在數據庫中,可靈活設置控件的顏色、字體等外觀。置控件的顏色、字體等外觀。(4最常用的功能是顯示和操作數據。最常用的功能是顯示和操作數據。 5.2 DataGrid控件控件 DataGrid控件的功能就是從數據庫中獲取數據,控件的功能就是從數據庫中獲取數據,然后以瀏覽器可以識別的方式如然后以瀏覽器可以識別的方式如HTML語言、語言、JavaScript加以顯示,它最大程度
4、地考慮了加以顯示,它最大程度地考慮了瀏覽器的多樣性,使得程序員可以不必考慮瀏瀏覽器的多樣性,使得程序員可以不必考慮瀏覽器的種類和版本的區別,將精力集中到程序覽器的種類和版本的區別,將精力集中到程序設計上來。此外,它封裝和提供了與數據操作、設計上來。此外,它封裝和提供了與數據操作、事件激發相關的功能,可以方便快捷地實現選事件激發相關的功能,可以方便快捷地實現選擇、編輯、排序、分頁等常規的數據操作。擇、編輯、排序、分頁等常規的數據操作。 DataGrid控件以表格形式顯示所綁定的數控件以表格形式顯示所綁定的數據,默認是以只讀的方式進行顯示,但可以通據,默認是以只讀的方式進行顯示,但可以通過設置列類
5、型實現數據修改和刪除,它對數據過設置列類型實現數據修改和刪除,它對數據顯示和操作等方面的功能進行了很好的封裝,顯示和操作等方面的功能進行了很好的封裝,只需要編寫少量代碼便可實現原來只需要編寫少量代碼便可實現原來ASP技術很技術很難實現的功能。難實現的功能。5.2.1 DataGrid控件的安插與綁定控件的安插與綁定 l DataGrid控件的安插控件的安插l 1新建一個項目新建一個項目Northwind,在項目中新建,在項目中新建一個一個Web窗體,命名為窗體,命名為Products.aspx。l 2從工具箱中從工具箱中“Web窗體選項卡中,將窗體選項卡中,將DataGrid控件拖放至頁面上,
6、在屬性窗口中將控件拖放至頁面上,在屬性窗口中將其其ID設置為設置為DG_Products。lDataGrid控件的綁定控件的綁定l1進入代碼視圖,引入命名空間:進入代碼視圖,引入命名空間:l using System.Data.SqlClint;l2定義綁定函數定義綁定函數DG_Products_Bind()。l3調用綁定函數,運行程序。調用綁定函數,運行程序。l【例【例5.1】DataGrid控件在頁面中的安插與數控件在頁面中的安插與數據綁定的實現。據綁定的實現。5.2.2 設置設置DataGird控件的外觀控件的外觀lDataGrid控件的外觀屬性控件的外觀屬性l DataGrid控件的外
7、觀屬性包括控件的外觀屬性包括BackColor背景色)、背景色)、BorderColor邊框顏色)、邊框顏色)、BorderStyle邊框樣式)、邊框樣式)、BorderWidth邊邊框寬度等,以及框寬度等,以及AlternatingItemStyle交替交替項樣式)、項樣式)、EditItemStyle編輯項樣式)、編輯項樣式)、FooterStyle腳注樣式)、腳注樣式)、HeaderStyle標頭標頭樣式)、樣式)、ItemStyle項樣式)、項樣式)、PagerStyle分頁樣式)、分頁樣式)、SelectedItemStyle選中項樣選中項樣式等樣式。式等樣式。 l通過屬性生成器通過
8、屬性生成器l 設置設置DataGrid控件控件l 的屬性的屬性l通過自動套用通過自動套用l格式設置格式設置DataGridl控件的屬性控件的屬性l【例【例5.2】在例】在例5.1的基礎上設置的基礎上設置DataGrid控件控件的外觀。的外觀。5.2.3設置設置DataGrid控件的分頁瀏覽功能控件的分頁瀏覽功能 lDataGrid控件的事件概述控件的事件概述l DataGrid控件提供了很多事件,如更新事件控件提供了很多事件,如更新事件UpdateCommand、取消更新事件、取消更新事件CancelCommand、刪除事件、刪除事件DeleteCommand、選中事件選中事件Selected
9、IndexChangedCommand、排、排序事件序事件SortCommand等,分頁事件等,分頁事件PageIndexChanged是其中的一個,每個事件是其中的一個,每個事件都有相應的函數,當該事件被觸發時,程序會都有相應的函數,當該事件被觸發時,程序會調用相應的函數來進行處理,調用相應的函數來進行處理,.NET會自動關會自動關聯一個事件和它對應的函數。要實現分頁,只聯一個事件和它對應的函數。要實現分頁,只需編寫分頁的函數即可。需編寫分頁的函數即可。 事件含義事件含義事件名稱事件名稱何時激發何時激發排序排序SortCommand點擊列標題對列進行排序時點擊列標題對列進行排序時選擇選擇Se
10、lectedIndexChanged在在DataGrid控件中選擇了不同的項時控件中選擇了不同的項時編輯編輯EditCommand對某項單擊對某項單擊Edit按鈕時按鈕時取消編輯取消編輯CancelCommand對進入編輯狀態的項單擊對進入編輯狀態的項單擊 Cancel 按鈕按鈕時時更新更新UpdateCommand對進入編輯狀態的項單擊對進入編輯狀態的項單擊 Update 按鈕按鈕時時刪除刪除DeleteCommand對某項單擊對某項單擊Delete按鈕時運行時按鈕時運行時分頁分頁PageIndexChanged當單擊頁選擇元素之一時當單擊頁選擇元素之一時創建創建ItemCreated當當D
11、ataGrid控件創建項時控件創建項時數據綁定數據綁定ItemDataBound當數據被綁定到當數據被綁定到DataGrid控件的項時控件的項時單擊單擊ItemCommand當單擊當單擊 DataGrid 控件中的任一按鈕時控件中的任一按鈕時l【例5.3】在例5.2基礎上設置DataGrid控件的分頁功能。l1在“屬性生成器中設置DataGrid控件允許分頁。將“允許分頁左面的復選框選中,“頁大小定義為10行,即每頁顯示10條數據,頁導航下面的“位置選擇“底”,即在DG_Products控件頁腳位置顯示分頁導航,“方式有兩種,可以是“上一頁、下一頁模式或“頁碼方式,在此,選擇“頁碼方式,“數值
12、按鈕設置為10,即當數據超過10頁時,只提供10頁的頁碼,更多的頁碼需點擊省略號才能展開,以免格式產生混亂。 l2撰寫翻頁函數DG_Products_PageIndexChanged()。5.2.4設置設置DataGrid控件的數據排序功能控件的數據排序功能 l【例5.4】在例5.3基礎上設置DataGrid控件的數據排序功能。l1在“屬性生成器中設置DataGrid控件允許排序,或者在屬性窗口中將DG_Products的AllowPaging屬性改為true,該屬性默認值為false。 l2撰寫排序函數DG_Products_SortCommand ()。設置分頁和排序后的設置分頁和排序后的
13、DataGrid控件控件5.3 DataGrid控件的列類型控件的列類型5.3.1 創建自定義數據訪問類創建自定義數據訪問類DBAccess 在講解在講解DataGrid控件的列類型之前,由于每個控件的列類型之前,由于每個頁面都要用到很多相同的功能,如連接數據庫、頁面都要用到很多相同的功能,如連接數據庫、綁定綁定DataGrid控件等,因此,可以把常用的功控件等,因此,可以把常用的功能抽象成一個公用類能抽象成一個公用類DBAccess.cs,在其他頁,在其他頁面中創建該類的實例,應用其方法,利用這種面中創建該類的實例,應用其方法,利用這種方法,程序代碼將比以前的例子簡潔得多。方法,程序代碼將比
14、以前的例子簡潔得多。 1修改修改Web.config的內容。的內容。 2建立數據訪問類建立數據訪問類DBAccess 詳細代碼請參看教材。詳細代碼請參看教材。5.3.2 DataGrid控件的列類型控件的列類型 DataGrid控件的每一列都是一個控件的每一列都是一個Column對象,對象,利用利用Column對象的屬性和方法,可以對對象的屬性和方法,可以對DataGrid控件的每一列進行操作。控件的每一列進行操作。Column對對象又派生出象又派生出5類列對象:類列對象:BoundColumn綁定綁定列)、列)、HyperLinkColumn超鏈列)、超鏈列)、ButtonColumn按鈕列
15、,從功能上又包括選按鈕列,從功能上又包括選擇列和刪除列)、擇列和刪除列)、EditCommandColumn編編輯列)、輯列)、TemplateColumn模板列)。模板列)。屬屬 性性描描 述述FooterStyle定義頁腳的顯示風格,為只讀屬性定義頁腳的顯示風格,為只讀屬性FooterText定義頁腳的顯示文字定義頁腳的顯示文字HeaderImageUrl 在表頭里用圖形代替文字時,定義顯示圖形的效在表頭里用圖形代替文字時,定義顯示圖形的效果果HeaderStyle定義表頭的顯示風格,為只讀屬性定義表頭的顯示風格,為只讀屬性HeaderText定義表頭的顯示文字定義表頭的顯示文字ItemS
16、tyle定義列內部內容的顯示風格,為只讀屬性定義列內部內容的顯示風格,為只讀屬性Owner返回列所屬的返回列所屬的DataGrid控件的控件的ID,為只讀屬性,為只讀屬性SortField定義用于排序的字段定義用于排序的字段State返回列所處的狀態,為只讀屬性返回列所處的狀態,為只讀屬性Visible定義列的可見狀態。取值為定義列的可見狀態。取值為“Boolean”型,默認型,默認值為值為“true”5.3.3 綁定列綁定列 重點介紹一下綁定列的重點介紹一下綁定列的DataFormatString屬性。屬性。 數據庫中的數據類型很多,除了字符之外,還有貨幣、數據庫中的數據類型很多,除了字符之
17、外,還有貨幣、小數、日期等,如果用小數、日期等,如果用DataGrid控件的列綁定這些數控件的列綁定這些數據,需要設置其據,需要設置其DataFormatString屬性,使數據以合屬性,使數據以合適的格式加以顯示。該屬性的取值形式為適的格式加以顯示。該屬性的取值形式為“0:Bxx”,“B表示取值類型。表示取值類型。 值值描描 述述C以貨幣形式顯示數字類型的值以貨幣形式顯示數字類型的值D以小數形式顯示數字類型的值以小數形式顯示數字類型的值E以科學計數法形式顯示數字類型的值以科學計數法形式顯示數字類型的值F以固定格式顯示數字類型的值以固定格式顯示數字類型的值G以普通格式顯示數字類型的值以普通格式
18、顯示數字類型的值N以數字形式顯示數字類型的值以數字形式顯示數字類型的值X以十六進制形式顯示數字類型的值以十六進制形式顯示數字類型的值初始值初始值格式字符串格式字符串結果結果98765.4321“0:C”¥98,765.43-98765.4321“0:C”(¥98,765.43)12345“0:D”1234512345“0:D6”01234598765.4321“0:F”98765.4398765.4321“0:F0”9876598765.4321“Total:0:C”Total: ¥98,765.43【例5.5】在DataGrid控件中使用DataFormatString設置顯示格式。1在No
19、rthwind項目中添加頁面Order.aspx,在頁面上添加DataGrid控件DG_Order。2在屬性生成器中添加4個綁定列,其屬性設置如下。頁眉文本頁眉文本數據字段數據字段排序表達式排序表達式數據格式設置表達式數據格式設置表達式訂單日期訂單日期OrderDateasc0:yyyy-MM-dd到達日期到達日期RequiredDate0:yyyy-MM-dd運費運費Freightdesc0:C到達國家到達國家ShipCountry3利用利用DBAccess類,編寫代碼。類,編寫代碼。5.3.4 按鈕列選擇列、編輯列、刪除列)按鈕列選擇列、編輯列、刪除列)1選擇列選擇列 選擇列的功能是在選擇
20、列的功能是在DataGrid控件顯示的數據列表中,控件顯示的數據列表中,將某一行數據置為選中狀態,可以設置將某一行數據置為選中狀態,可以設置DataGrid控件控件選中項的背景顏色為特殊顏色,以示區別。然而在大選中項的背景顏色為特殊顏色,以示區別。然而在大多數情況下,僅僅將一行數據進行選中操作的意義并多數情況下,僅僅將一行數據進行選中操作的意義并不大,不大,DataGrid控件還提供了選中事件控件還提供了選中事件SelectedIndexChanged,可以在選中事件相應的函數,可以在選中事件相應的函數中編寫代碼,在選中的同時完成如數據操作之類的功中編寫代碼,在選中的同時完成如數據操作之類的功
21、能。能。 選中它時,獲取其行標記即可。選中它時,獲取其行標記即可。DataGrid控件提供了控件提供了一個很重要的屬性一個很重要的屬性DataKeyField來解決這個問題,其來解決這個問題,其作用是將數據集中的某一列作為行標記。獲取作用是將數據集中的某一列作為行標記。獲取DataKeyField的方法為:的方法為:DataGrid控件的控件的ID.DataKeys要獲取行的要獲取行的index。 【例5.6】在DataGrid控件中使用選擇列。1在Northwind項目中添加一個新頁面,命名為Products1.aspx 。在頁面上添加DataGrid控件命名為DG_Products,并自動
22、套用“專業型3” 款式。2通過屬性生成器為DataGrid添加4個綁定列,將其屬性設置如下。頁眉文本頁眉文本數據字段數據字段數據格式設置表達式數據格式設置表達式ProductNameProductNameUnitPriceUnitPrice0:F2UnitsOnOrderUnitsOnOrderDiscontinuedDiscontinued3為為DataGrid添加一個選擇列,將其頁眉文本設置為添加一個選擇列,將其頁眉文本設置為Discontinued?,文本設置為,文本設置為Y/N。 4利用利用DBAccess類撰寫函數類撰寫函數DG_Products_SelectedIndexChang
23、ed ()。5運行程序,在運行程序,在“Discontinued?”列上單擊時,該行的列上單擊時,該行的“Discontinued的值會在的值會在True和和False之間轉換。之間轉換。 2編輯列編輯列 第二種按鈕列就是編輯、更新、取消列,其功能是可第二種按鈕列就是編輯、更新、取消列,其功能是可以使以使DataGrid控件中某一行進入編輯狀態,編輯之后控件中某一行進入編輯狀態,編輯之后可以直接將新數據更新到數據庫,還可以取消編輯。可以直接將新數據更新到數據庫,還可以取消編輯。相應的,相應的,DataGrid控件提供了編輯事件控件提供了編輯事件EditCommand、更新事件更新事件Updat
24、eCommand、取消事件、取消事件CancelCommand以及相應的函數。以及相應的函數。【例【例5.7】在例】在例5.6基礎上增加編輯列。基礎上增加編輯列。1回到回到Products1.aspx頁的頁的“設計視圖,首先為了頁設計視圖,首先為了頁面的美觀,進入面的美觀,進入DG_Products控件的屬性生成器對話控件的屬性生成器對話框中將框中將UnitPrice、Discontinued兩個綁定列和選擇列兩個綁定列和選擇列Discontinued?刪除,即選中該列,單擊右邊的刪除,即選中該列,單擊右邊的 按按鈕,然后按前面介紹的方法添加一個鈕,然后按前面介紹的方法添加一個“編輯、更新、編
25、輯、更新、取消列,單擊取消列,單擊“確定按鈕。確定按鈕。2撰寫編輯事件對應的各個函數。撰寫編輯事件對應的各個函數。3刪除列刪除列 第三種按鈕列是刪除列,其功能是將第三種按鈕列是刪除列,其功能是將DataGrid控件中控件中的某行數據刪除,相應地,的某行數據刪除,相應地,DataGrid控件提供了刪除控件提供了刪除事件事件DeleteCommand及相應的函數。及相應的函數。 【例【例5.8】在】在DataGrid控件中使用刪除列。控件中使用刪除列。1在在Northwind項目中新建一個文件,命名為項目中新建一個文件,命名為OrderDetail.aspx,在頁面上添加一個,在頁面上添加一個Da
26、taGrid控件,控件,在在DataGrid控件的屬性窗口中將其控件的屬性窗口中將其ID屬性值改為屬性值改為DG_OrderDetail,通過屬性生成器為其添加四個綁定,通過屬性生成器為其添加四個綁定列和一個刪除列,刪除列的頁眉文本設置為列和一個刪除列,刪除列的頁眉文本設置為“刪除刪除”,綁定列的屬性設置如下所示。綁定列的屬性設置如下所示。頁眉文本頁眉文本數據字段數據字段OrderIDOrderIDProductIDProductIDUnitPriceUnitPriceQuantityQuantity2右擊右擊DG_OrderDetail控件,在出現的快捷菜單中單擊控件,在出現的快捷菜單中單擊
27、“自動套用格式菜單項,在出現的自動套用格式菜單項,在出現的“自動套用格式自動套用格式對話框中選擇對話框中選擇“彩色型彩色型4”。3然后打開然后打開OrderDetail.aspx.cs文件,書寫代碼,文件,書寫代碼, 5.3.5 超級鏈接列超級鏈接列 在用表格即在用表格即HTML語言中的語言中的Table形式進形式進行數據顯示的時候,很多情況下需要將表格中行數據顯示的時候,很多情況下需要將表格中的某一列作為超級鏈接,鏈接到另外一個頁面,的某一列作為超級鏈接,鏈接到另外一個頁面,并且傳一個參數過去,并且傳一個參數過去,DataGrid控件提供了超控件提供了超級鏈接列來滿足這個功能。級鏈接列來滿足
28、這個功能。【例【例5.9】在例】在例5.8基礎上添加超級鏈接列。基礎上添加超級鏈接列。1在在OrderDetail.aspx頁面中,通過屬性生成器頁面中,通過屬性生成器將將DG_OrderDetail控件的第一個綁定列刪除,控件的第一個綁定列刪除,添加一個超級鏈接列,并點擊右邊標有向上箭添加一個超級鏈接列,并點擊右邊標有向上箭頭的按鈕將其移動到第一個位置。頭的按鈕將其移動到第一個位置。 其屬性設置其屬性設置如下圖。如下圖。2為了驗證超鏈列的效果,在項目中新添一個頁面命名為了驗證超鏈列的效果,在項目中新添一個頁面命名為為Blank.aspx,并在其中撰寫簡單代碼。,并在其中撰寫簡單代碼。3運行運行OrderDetail.aspx頁,發現頁,發現DataGrid控件的第一控件的第一列已經變成了超鏈,將鼠標放置在超鏈之上,從狀態列已經變成了超鏈,將鼠標放置在超鏈之上,從狀態欄中可以看到超鏈指向的地址,以及參數的名稱和參欄中可以看到超鏈指向的地址,以及參數的名稱和參數值,點擊超鏈,在新窗口中打開了數值,點擊超鏈,在新窗口中打開了Blank.aspx頁,頁,并且成功地接收到了傳來的參數并且成功地接收到了傳來的參數 5.3.6 模板列模板列 DataGrid控件提供了另外一種更為靈活、自定義性更控件提供了另外一種更為靈活、自定義性更強
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧省本溪高級中學2025屆高三第一次統測英語試題含解析
- 山東省濱州市鄒平縣重點中學2025年高中畢業班第一次診斷性檢測試題物理試題試卷含解析
- 益陽師范高等專科學校《計算機輔助繪圖基礎》2023-2024學年第二學期期末試卷
- 揚州市廣陵區重點名校2024-2025學年初三畢業班3月反饋檢測試題生物試題含解析
- 四川省巴中學中學2024-2025學年初三下第一次摸底考試數學試題試卷含解析
- 山東省泰安市泰山區2025年秋初三(下)期末測試卷語文試題含解析
- 新疆伊犁市奎屯市第一高級中學2024-2025學年高三1月考前適應性考試化學試題含解析
- 武漢東湖學院《專業綜合設計-機械設計方向》2023-2024學年第二學期期末試卷
- 山東省德州市躍華中學2025年高考語文試題命題比賽模擬試卷(15)含解析
- 基于Hadoop的機器學習框架構建-全面剖析
- OSCE模式下護理技能競賽考核試題與答案
- 第十四屆全國海洋知識競賽活動參考題庫(含答案)
- 北師大版四年級下冊應用題專項練習【含答案】
- 物品接收單模板(接受聯、存根聯)
- 抗滑樁施工危險源辨識與評價及應對措施
- 語文園地五(識字加油站、我的發現)
- 建設單位業主方工程項目管理流程圖
- 發展心理學第四節-智力發展
- 壓力管道檢驗計算案例
- 碎石擠密樁復合地基施工工法解讀
- 初中花城版八年級下冊音樂4.狂歡之歌(15張)ppt課件
評論
0/150
提交評論