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 ...