自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何擴(kuò)展ASP.NET GridView控件

開發(fā) 后端
本文將聚焦對(duì)ASP.NET2.0內(nèi)置的GridView進(jìn)行擴(kuò)展的一系列新功能。通過七個(gè)特征讓您更輕松掌握GridView控件。

本文詳細(xì)解釋如何擴(kuò)展ASP.NET GridView控件,同樣還將解釋了擴(kuò)展后的GridView控件所具有的新的重要特征:基于行的上下文菜單和GridViews行的過濾功能。

引言

本文將聚焦對(duì)擴(kuò)展ASP.NET GridView控件后的一系列新功能。其中本文介紹兩個(gè)主要特征:基于行的上下文菜單(Row_base ContextMenu)和基于過濾功能的GridView的行,在上周我曾經(jīng)介紹了GridView控件。

在我們自定義的GridView控件里,提供了幾個(gè)具有“高效率”功能的擴(kuò)展,不過,這些功能都不是GridView控件自帶的基本功能,正如您即將看到的,我們需要要重構(gòu)這些功能。 擴(kuò)展現(xiàn)在的GridView控件可以讓您更能夠控件常規(guī)GridView所沒有的功能,另外,擴(kuò)展該功能后,您以后就可以不斷重復(fù)的使用這些新特性。

我們準(zhǔn)備增加如下幾個(gè)特征:

1、行的單擊

2、行的雙擊

3、基于行的上下文菜單

4、頭元素的升序降序排列

5、當(dāng)頁(yè)面記錄樹木小于PageSize時(shí),修正GridView的高度

6、內(nèi)置的過濾文本框

7、內(nèi)置的復(fù)選框

除此以外,我們還將添加三個(gè)簡(jiǎn)單按鈕,可以利用他們?cè)诳蛻舳颂砑右恍┖?jiǎn)單的確認(rèn)函數(shù)

·確認(rèn)按鈕(Confirm Button)

·圖片按鈕(Confirm Image Button)

·鏈接按鈕(Confirm Link Button)

擴(kuò)展的XGrid控件需要從GridView控件派生,這也就說這個(gè)新的控件可以在ASP.NET2.0上運(yùn)行。

下面代碼顯示了擴(kuò)展后的的開始部分:

  1. namespace CustomControls  
  2. {  
  3. namespace Grid  
  4. {  
  5. [ToolboxData("〈 {0}:xGrid runat=server〉  
  6. 〈 /{0}:xGrid〉")]  
  7. public partial class xGrid : GridView  

要使用這個(gè)控件,只要簡(jiǎn)單的把它通過VS.NET2005的工具欄直接拖放到Web窗體上即可。具體怎把該控件添加VS.NET2005工具欄上則不是本文討論的范圍。

下面的代碼片斷顯示了它的基本使用

  1. 〈xGrid:xGrid ID="XGrid1" runat="server" 
  2.  AutoGenerateColumns="False" /〉 

單擊(Single Row Click)

這是該自定義控件添加的第一個(gè)新特性,您現(xiàn)在把鼠標(biāo)放置到一行數(shù)據(jù)上然后單擊就會(huì)引起頁(yè)面數(shù)據(jù)的回發(fā),你可能認(rèn)為使用這個(gè)功能實(shí)現(xiàn)主/從頁(yè)面,是的,使用RowClick可以實(shí)現(xiàn)這個(gè)功能。

相關(guān)的屬性是:

·EnableRowClick:這個(gè)屬性可以取值為true/false,默認(rèn)為false

·MouseOverColor:當(dāng)EnableRowClick設(shè)置為true時(shí),利用該屬性設(shè)置鼠標(biāo)移過一行數(shù)據(jù)顯示的結(jié)果。單擊和雙擊都使用這個(gè)功能。

下圖顯示了運(yùn)行結(jié)果,在這個(gè)運(yùn)行結(jié)果里,顯示了單擊一行時(shí)的效果。

GridView控件

您可以在RowClick事件里處理單擊的結(jié)果,示意代碼如下:

  1. protected void XGrid1_RowClick(object sender,   
  2. RowClickEventArgs e)  
  3. {  
  4. Response.Write("You clicked row: " + e.  
  5. GridViewRow.RowIndex);  

RowClickEventArgs參數(shù)默認(rèn)是從EventArgs 類派生,并增加了一個(gè)名稱為GridViewRow 的屬性,這樣您就可以使用該屬性獲取當(dāng)前行的索引。

 #p#

行的雙擊(Double Row Click)

這是擴(kuò)展ASP.NET GridView控件后添加的第二個(gè)功能。您現(xiàn)在只需要在一行上雙擊就會(huì)向服務(wù)器產(chǎn)生數(shù)據(jù)回發(fā)來處理請(qǐng)求。您可以通過雙擊讓當(dāng)前行處于編輯默認(rèn)。 在行的雙擊里已經(jīng)添加了RowDoubleClick事件,您可以使用該事件處理特定的業(yè)務(wù)邏輯

相關(guān)的屬性

EnableRowDoubleClick:取值為true或者false,默認(rèn)值為false

MouseOverColor:當(dāng)EnableRowDoubleClick設(shè)置為true時(shí),可以利用該屬性設(shè)置鼠標(biāo)移過行的效果,這個(gè)和單擊行的效果一樣。

下圖顯示了運(yùn)行結(jié)果

設(shè)置鼠標(biāo)移過行的效果

您可以處理RowDoubleClick 事件,示意代碼如下:

  1. protected void XGrid1_RowDoubleClick(object sender,   
  2. RowDoubleClickEventArgs e)  
  3. {  
  4. Response.Write("You double clicked row: " + e.  
  5. GridViewRow.RowIndex);  

RowDoubleClickEventArgs 類時(shí)從EventArgs 類派生并添加了GridViewRow 屬性,使用該屬性可以給你更全的控件

基于行的上下文菜單

我們花費(fèi)了一個(gè)半月左右的事件來研究GridView控件,但是我們發(fā)現(xiàn)沒有一個(gè)GridView控件可以使用ContextMenu,也就是說內(nèi)置的GridView上下文菜單控件無法使用。

我們不得不使用Dino Esposito開發(fā)的context meun,該菜單的開發(fā)文檔發(fā)布在MSDN雜志上,本文后面會(huì)在資料文件里列出對(duì)該文件的鏈接。 Dino Esposito開發(fā)的Context Menu主要使用ASP.NET1.1技術(shù)進(jìn)行開發(fā),我們已經(jīng)建立了基于ASP.NET2.0 Context Menu項(xiàng)目,該項(xiàng)目拷貝了他的代碼,并進(jìn)行了簡(jiǎn)單的更改。其中,一個(gè)改變是在Context Menu項(xiàng)目里添加了OnClientClick屬性,這樣在處理客戶端向服務(wù)器請(qǐng)求的回發(fā)前,開發(fā)人員可以將客戶端處理事件掛接到上下文菜單里。

Context Menu使用的客戶端代碼主要是Javascript代碼,這里的代碼在ASP.NET2.0里已經(jīng)作為資源(Resource)包括進(jìn)去了。

Context Menu現(xiàn)在已經(jīng)是基于ASP.NET2.0的項(xiàng)目了并且已經(jīng)集成到擴(kuò)展的GridView控件的每一行,現(xiàn)在當(dāng)您右擊每一行時(shí),您將可以訪問右擊事件。擴(kuò)展的GridView控件還有一個(gè)新的屬性:RightClickRow,該屬性可以返回當(dāng)前行上下文菜單

相關(guān)的屬性如下:

·GridView控件是具有上下文菜單的,這里的ID設(shè)置的就是在ASPX頁(yè)面上的GridView控件ID

·RightClickedRow:該屬性設(shè)置上下文菜單。

下圖顯示了運(yùn)行結(jié)果。

設(shè)置上下文菜單

當(dāng)您在行上單擊鼠標(biāo)右鍵時(shí)彈出Context Menu菜單。這里顯示了三個(gè)選項(xiàng):

·Add a new Row:當(dāng)選擇該選項(xiàng)后,將會(huì)在記錄里出現(xiàn)新建行。

·Delete Row:允許你刪除當(dāng)前右擊的行

·Edit Row:運(yùn)行您設(shè)置當(dāng)前行的模式 為編輯模式

編輯模式

【編輯推薦】

  1. ASP.NET 2.0中的URL映射
  2. ASP.NET 2.0教程 數(shù)據(jù)源控件解析
  3. ASP.NET頁(yè)面請(qǐng)求原理淺析
  4. ASP.NET頁(yè)面靜態(tài)化四步走
  5. 淺析ASP.NET授權(quán)模塊
責(zé)任編輯:冰荷 來源: 51CTO.com
相關(guān)推薦

2009-07-24 15:35:00

ASP.NET Gri

2009-07-20 18:02:48

GridView控件ASP.NET 2.0

2009-08-03 18:29:31

GridView與Da

2009-08-04 13:38:36

ASP.NET用戶控件

2012-09-26 09:46:29

ASP.NETWeb框架

2009-08-17 09:24:25

ASP.NET控件

2009-07-27 17:25:53

ASP.NET驗(yàn)證控件

2009-07-27 13:52:36

Panel控件ASP.NET

2009-07-27 16:19:59

ASP.NET報(bào)表控件

2009-08-03 15:08:00

SqlDataSour

2009-08-04 10:43:59

ASP.NET控件開發(fā)

2009-08-19 13:44:00

ASP.NET Lis

2009-07-29 13:50:26

UpdatePanelASP.NET

2009-08-05 15:57:03

ASP.NET控件ID

2009-07-27 16:22:54

GridView選擇行

2009-07-27 15:58:25

添加GridView

2009-08-14 13:20:29

ASP.NET Gri

2009-08-10 14:08:15

ASP.NET服務(wù)器控ASP.NET組件設(shè)計(jì)

2009-08-07 14:40:36

RegularExprASP.NET驗(yàn)證控件

2009-08-27 16:59:20

ASP.NET用戶控件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)