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