GridView里的Button控件用法 網(wǎng)格查看里的按鈕控件用法 http://www.cnblogs.com/strivers/archive/2011/01/26/1945287.html
當(dāng)用戶點(diǎn)擊一個Button(位于FormView內(nèi)部EdiTemplate)時,頁面會回發(fā),FormView的ItemCommand event被激發(fā).我們可以為這個事件創(chuàng)建一個event handler ,用來在Button 被點(diǎn)擊時執(zhí)行自定義代碼。注意:任何時候FormView里的任何Button, LinkButton, 或 ImageButton被點(diǎn)擊時,ItemCommand 事件都會被激發(fā).這意味著當(dāng)用戶在FormView里從一個頁面跳到另一個頁面時,ItemCommand 事件會被激發(fā).當(dāng)用戶點(diǎn)擊一個支持inserting, updating, 或 deleting的FormView里的New, Edit, 或 Delete 時,ItemCommand 事件會被激發(fā)。(要熟悉FormView的構(gòu)造) 既然無論點(diǎn)擊什么button時, ItemCommand 都會被激發(fā),那么在event handler里我們需要判斷是“Discontinue All Products” Button 被點(diǎn)擊了還是其它的button.為了達(dá)到這個目的,可以通過設(shè)置Button 的CommandName來識別. 當(dāng)Button 被點(diǎn)擊后,CommandName 的值被傳到ItemCommand 的event handler,我們通過這個值來判斷被點(diǎn)擊的button是否是“Discontinue All Products” Button。設(shè)置“Discontinue All Products” Button的CommandName為“DiscontinueProducts”。 C#
GridView, DetailsView, 和FormView都可以包含Buttons, LinkButtons, 或ImageButtons.這些button被點(diǎn)擊時,頁面回發(fā),并激發(fā)FormView 和DetailsView 的ItemCommand 事件,GridView的RowCommand 事件.除了可以執(zhí)行本身內(nèi)置的功能外,還可以使用執(zhí)行自定義代碼的button.為了達(dá)到這個目的,需要為ItemCommand 或 RowCommand 創(chuàng)建一個event handler(事件處理程序). 在這個event handler 里我們首先檢查CommandName 的值來判斷哪個button被點(diǎn)擊了,然后執(zhí)行相應(yīng)的自定義代碼. 注意:任何時候FormView里的任何Button,LinkButton, 或 ImageButton被點(diǎn)擊時,ItemCommand 事件都會被激發(fā).這意味著當(dāng)用戶在FormView里從一個頁面跳到另一個頁面時,ItemCommand 事件會被激發(fā).當(dāng)用戶點(diǎn)擊一個支持inserting, updating, 或 deleting的FormView里的New,Edit, 或 Delete 時,ItemCommand 事件會被激發(fā). 以下為自定義功能實現(xiàn)的代碼段: C# /*e.CommandArgument是用來獲取button所在row的rowIndex。此時e.CommandName為Button所設(shè)置的CommandName。DataKeys獲取一個 DataKey(數(shù)據(jù)綁定控件中某個記錄的一個或多個主鍵字段) 對象集合,這些對象表示 GridView 控件中的每一行的數(shù)據(jù)鍵值。類CommandEventArgs有兩個公共屬性,CommandName(用來獲取命令的名稱)和CommandArgument(用來獲取命令的參數(shù))*/ /*從Double類型到Decimal的顯示轉(zhuǎn)換(整型可以隱式轉(zhuǎn)換為Decimal類型,不必在后面加M,詳情見下方的MSDN查閱)*/ 注意:GridView (和DetailsView)同樣可以將Buttons,LinkButtons或ImageButtons 加到TemplateFields里.和BoundField一樣,這些Button被點(diǎn)擊時會產(chǎn)生回發(fā),觸發(fā)GridView的RowCommand 事件.當(dāng)添加button到TemplateField里時,button的CommandArgument不會像使用ButtonFields一樣,被自動設(shè)置為row 的index .如果你需要在RowCommand的event handler里判斷點(diǎn)擊的button所在行的index ,你需要在TemplateField的頁面代碼里使用以下代碼來設(shè)置button的CommandArgument 屬性:
注意
DataKeyArray 類支持多種訪問集合中的項的方法:使用 Item 索引器直接從集合中從零開始的特定索引位置檢索 DataKey 對象。使用 GetEnumerator 方法檢索可用于循環(huán)訪問集合的枚舉數(shù)。使用 CopyTo 方法將集合中的項復(fù)制到數(shù)組,然后可使用該數(shù)組訪問集合中的項。若要確定集合中的總項數(shù),請使用 Count 屬性。
DataKey 類 表示數(shù)據(jù)綁定控件中某個記錄的一個或多個主鍵字段。 DataKey 類用于表示數(shù)據(jù)綁定控件中某個記錄的主鍵。記錄的主鍵可以由數(shù)據(jù)源中的一個或多個字段組成。盡管 DataKey 類不是集合,但它可以存儲多個鍵字段值。當(dāng)調(diào)用 DataKey 類的某個構(gòu)造函數(shù)時,將填充鍵字段值??梢酝ㄟ^以下方法從 DataKey 對象中檢索鍵字段值:使用 DataKey.Item(Int32) 屬性檢索 DataKey 對象中特定索引位置的鍵字段值。使用 DataKey.Item(String) 屬性檢索特定字段的鍵字段值。使用 Value 屬性檢索 DataKey 對象中索引 0 位置的鍵字段值。當(dāng)主鍵只包含一個字段時,此屬性常用作檢索記錄鍵值的快捷方式。使用 Values 屬性創(chuàng)建可用于循環(huán)訪問鍵字段值的 IOrderedDictionary 對象。通常,當(dāng)設(shè)置了數(shù)據(jù)綁定控件的 DataKeyNames 屬性時,控件自動生成 DataKey 對象。DataKey 對象包含DataKeyNames 屬性中指定的一個或多個鍵字段的值。一次顯示一個記錄的數(shù)據(jù)綁定控件(如 DetailsView 或 FormView)通常在它的 DataKey 屬性中存儲所顯示的當(dāng)前記錄的 DataKey 對象。一次顯示多個記錄的數(shù)據(jù)綁定控件(如GridView)通常在 DataKeyArray 集合中存儲它的每個記錄的 DataKey 對象。然后,DataKeyArray 集合將存儲在控件的 DataKeys 屬性中。 關(guān)于decimal類型(C# 參考) 類型 大致范圍 精度 .NET Framework 類型 標(biāo)識符 轉(zhuǎn)換 在浮點(diǎn)型和 decimal 類型之間不存在隱式轉(zhuǎn)換;因此,必須使用強(qiáng)制轉(zhuǎn)換在這兩種類型之間進(jìn)行轉(zhuǎn)換。例如:decimal myMoney = 99.9m; double x = (double)myMoney; myMoney = (decimal)x; |
|
來自: 昵稱10525020 > 《htlp》