Wijmo 更優美的jQuery UI部件集:運行時處理Wijmo GridView數據操作

C1GridView具有很多內置的功能,比如排序過濾分頁以及分組

image

對於開發者來說,這些都是很有用的功能,因爲它們可以節省大量通過代碼實現這些能力的時間。
無論如何,開發人員不一定非要將其在設計時綁定到一個數據源。實際上,在大多數情況下,數據是動態綁定的。

本文討論了當C1GridView動態綁定數據時如何實現排序,過濾分頁以及分組。

綁定C1GridView

C1GridView可以綁定到一個ADO.NET數據源,比如說DataSet,DataTable等等。對於本示例,我們將grid綁定到C1NWind.mdb數據庫文件的“Customers”表上。

 

  1. public DataSet BindGrid() 
  2.  
  3.  
  4.     OleDbConnection con = new OleDbConnection("provider=Microsoft.Jet.Oledb.4.0; Data Source=" + Server.MapPath("~/App_Data/C1NWind.mdb")); 
  5.  
  6.     OleDbDataAdapter da; 
  7.  
  8.     DataSet ds = new DataSet(); 
  9.  
  10.     da = new OleDbDataAdapter("Select * from Customers", con); 
  11.  
  12.     da.Fill(ds); 
  13.  
  14.     return ds; 
  15.  
  16.  
  17. protected void Page_Load(object sender, EventArgs e) 
  18.  
  19.  
  20.     if (!IsPostBack) 
  21.  
  22.     { 
  23.  
  24.         C1GridView1.DataSource = BindGrid(); 
  25.  
  26.         C1GridView1.DataBind(); 
  27.  
  28.     } 
  29.  

 

處理C1GridView事件

排序
爲了實現排序,我們需要處理Sorting以及Sorted事件。Grid會在Sorted事件中被重新綁定。

 

  1. protected void C1GridView1_Sorting(object sender, C1.Web.Wijmo.Controls.C1GridView.C1GridViewSortEventArgs e) 
  2.  
  3.  
  4.  
  5. //處理 Sorting 
  6.  
  7. protected void C1GridView1_Sorted(object sender, EventArgs e) 
  8.  
  9.  
  10.     C1GridView1.DataSource = BindGrid(); 
  11.  
  12.     C1GridView1.DataBind(); 
  13.  

 

過濾
處理過濾的代碼和處理排序的邏輯完全相同。我們需要處理Filtering 以及Filtered事件。

 

  1. protected void C1GridView1_Filtering(object sender, C1.Web.Wijmo.Controls.C1GridView.C1GridViewFilterEventArgs e) 
  2.  
  3.  
  4.  
  5. //處理Filtering 
  6.  
  7. protected void C1GridView1_Filtered(object sender, EventArgs e) 
  8.  
  9.  
  10.     C1GridView1.DataSource = BindGrid(); 
  11.  
  12.     C1GridView1.DataBind(); 
  13.  

 

分頁
處理分頁的邏輯和處理排序和過濾得邏輯有一點點不同。我們只需要處理Paging事件。首先將G1GridView的PageIndex設置爲NewPageIndex,然後就像我們之前所作的那樣,對grid進行重新綁定。

 

  1. protected void C1GridView1_PageIndexChanging(object sender, C1.Web.Wijmo.Controls.C1GridView.C1GridViewPageEventArgs e) 
  2.  
  3.  
  4.     C1GridView1.PageIndex = e.NewPageIndex; 
  5.  
  6.     C1GridView1.DataSource = BindGrid(); 
  7.  
  8.     C1GridView1.DataBind(); 
  9.  

 

分組
爲了對C1GridView進行分組,需要將AllowColMoving以及ShowGroupArea屬性設置爲true。我們還需要處理ColumnGrouped以及ColumnUngrouped事件,並且將ColumnUngrouped事件留空。然而,在ColumnGrouped事件中,我們必須重新綁定grid。不同的是,這次我們需要添加一個參數,這個參數就是正在被拖拽或者分組的列的HeaderText。這個參數首先被用來按照該列進行排序,之後應用分組,以確保不會創建重複分組。

 

  1. //處理 Column Grouping 
  2.  
  3. protected void C1GridView1_ColumnGrouped(object sender,   C1.Web.Wijmo.Controls.C1GridView.C1GridViewColumnGroupedEventArgs e) 
  4.  
  5.  
  6.     C1GridView1.DataSource = BindGrid(e.Drag.HeaderText); 
  7.  
  8.     C1GridView1.DataBind(); 
  9.  
  10.  
  11. //處理Column UnGrouping 
  12.  
  13. protected void C1GridView1_ColumnUngrouped(object sender, C1.Web.Wijmo.Controls.C1GridView.C1GridViewColumnUngroupedEventArgs e) 
  14.  
  15.  

 image

下載示例

 

Wijmo下載,請進入Studio for ASP.NET Wijmo 2012 v1正式發佈(2012.03.22更新)!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章