自定義GridView 介紹

2021-09-05 19:53:13 字數 3631 閱讀 7783

gridview 是microsoft datagrid(vs2003版本)的乙個替代品,它繼承了datagrid的很多優點,同時也繼承了它的很多缺點,我們在方便使用的同時,還是不免會產生一絲遺憾。早在2023年的時候,對datagrid 進行了二次封裝(dotnetgrid 介紹 ),感覺到對我們系統的效能,開發效率方面,提供了很多的幫助。所以我覺得還是有必要把這些功能公升級到gridview 中,下面我將一一介紹,我的bngridview提供了哪些方面的功能。

總覽:

該控制項主要包括以下幾方面的功能:

1、查詢(複雜查詢與簡單查詢相結合)。

2、分頁。

3、支援行、列合併。

4、自定義多層表頭。

5、支援多條件的合計、彙總。

6、支援行、列固定。

7、支援資料的樹狀顯示。

8、列表資料到匯出到excel文件。

下面,我將一一介紹,如何使用這些功能:

一、查詢。

1、簡單查詢:如圖。

2、複雜查詢:

使用者可以定義自已的查詢方案,以備下次使用。該查詢可以任意條件組合,非常靈活、方便。其查詢條件的定義,如下圖所示:

本查詢列表還支援「本人」「本月」「本年」等特定關鍵。共享查詢就更方便靈活了。

二、分頁:

三、多條件的合計、彙總;行列合併.

四、行、列固定。

五、多層表頭支援。

六、列表資料樹形結構展示。

幾點說明:

一、資料繫結,支援兩種方式的資料繫結:

1:databind(datatable dt),即支援傳入datatable 進行繫結,該datatable將被cache,頁面重新整理、翻頁、排序等操作,將直接從cache 獲取。

2:sql 繫結,即傳入繫結列表資料的sql,同時指定連線db的connectionstring 。控制項在獲取資料源時,將會解析該sql語句,根據每頁的記錄數,當前頁碼,對sql進行重新組合,然後交由db執行。sql分頁的策略為:

string

querypagecommandtext=@"

select * from  

(select top     * from "+

"(select top  * from () as t0 order by  ) as t1 "+

"order by  ) as t2 "+

"order by   ";

strsql 

=string

.format (querypagecommandtext, 

this

.ucurpagerows  ,       

// --> page size

this

.pagesize 

*(curpageindex), 

// --> size * index

selectcommand,       

// --> base query

sortfield,        

// --> key field in the query

"asc

",         

//default to ascending order

"desc",

"asc");

經幾年來的實踐檢驗,這樣的分頁效率是相當高的,現在我們的業務系統,每個表幾百資料,而且是

三、四張表關聯查詢,一點問題都沒有,值得信賴。

二、匯出到excel,這是一種非種成熟的技術,不值得一提。但是最近有使用者提出,希望能匯出 pdf 文件,不知道該如何處理,還望各位網友不吝賜教。

三、bngridview 的使用相當方便,基本沿用了原始gridview的使用模式,只是在傳遞資料源繫結時有所不同,例如: 

string

strsql;

datatable dt;

strsql =@"

select productid,productname,categoryname,quantityperunit,unitprice,unitsonorder,unitsinstock from products a 

inner join dbo.categories b  on a.categoryid = b.categoryid";

dt =

this

.sqlca.getdatatable(strsql);

this

.bngirdview1.querytextfield ="

productid,productname,categoryname,quantityperunit,unitprice,unitsonorder,unitsinstock";

this

.bngirdview1.queryvaluefield ="

productid,productname,categoryname,quantityperunit,unitprice,unitsonorder,unitsinstock";

this

.bngirdview1.sortfield ="

categoryname";

this

.bngirdview1.isasc 

=false

;this

.bngirdview1.pagesize =20

;this

.bngirdview1.strxmlpath ="

~/filterinfo.xml";

this

.bngirdview1.imagepath ="

resource/image/";

this

.bngirdview1.databind(dt);

自定義GridView 介紹

gridview 是microsoft datagrid vs2003版本 的乙個替代品,它繼承了datagrid的很多優點,同時也繼承了它的很多缺點,我們在方便使用的同時,還是不免會產生一絲遺憾。早在2004年的時候,對datagrid 進行了二次封裝 dotnetgrid 介紹 感覺到對我們系統...

GridView自定義分頁

在 asp.net 2.0 種提供了 gridview 控制項。該控制項的分頁比較方便,可以通過在 visual studio net 2005 種簡單設定即可實現各種分頁功能。1.預設分頁方式 1 是否允許分頁 gridview 的allowpaging 屬性。2 每頁記錄數 gridview 的...

gridview 自定義分頁

總記錄數 private int totalcountrecord 每頁顯示的條數 private int pageitem 5 當前頁 private int currentpage 1 private string strurl string.empty protected void page ...