C1GridView 拥有很多内置且实用的功能例如排序、过滤、分页和分组。 只需简单的设置属性即可实现这些功能,可以大大节省开发人员的时间。
C1GridView在设计时实现上述功能是十分简单的,只需要设置相应属性为 true 即可。但是,一些用例中开发人员需要在运行时来绑定数据,再实现这些功能。
本文即将讨论在动态绑定数据源时,如何通过代码实现以上功能。
绑定 C1GridView
C1GridView 可以绑定到 ADO.NET 数据源,例如 DataSet,DataTable等。以下是绑定‘Customers’ 数据表到 C1GridView 的代码。
public DataSet BindGrid(){OleDbConnection con = new OleDbConnection("provider=Microsoft.Jet.Oledb.4.0; Data Source=" + Server.MapPath("~/App_Data/C1NWind.mdb"));OleDbDataAdapter da;DataSet ds = new DataSet();da = new OleDbDataAdapter("Select * from Customers", con);da.Fill(ds);return ds;}protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){C1GridView1.DataSource = BindGrid();C1GridView1.DataBind();}}
操作C1GridView 事件
排序
实现排序功能,我们需要操作 Sorting 和 Sorted 事件,在 Sorted 事件中需要重新绑定数据源。
protected void C1GridView1_Sorting(object sender, C1.Web.Wijmo.Controls.C1GridView.C1GridViewSortEventArgs e){}//Handles Sortingprotected void C1GridView1_Sorted(object sender, EventArgs e){C1GridView1.DataSource = BindGrid();C1GridView1.DataBind();}
过滤
实现过滤功能,我们需要操作 Filtering 和 Filtered 事件,在 Filtered 事件中需要重新绑定数据源。
protected void C1GridView1_Filtering(object sender, C1.Web.Wijmo.Controls.C1GridView.C1GridViewFilterEventArgs e){}//Handles Filteringprotected void C1GridView1_Filtered(object sender, EventArgs e){C1GridView1.DataSource = BindGrid();C1GridView1.DataBind();}
分页
分页的代码和排序、过滤稍有不同。我们需要操作 Paging 事件。首先,设置NewPageIndex 属性为当前的PageIndex ,同时,也需要重新绑定数据源。
protected void C1GridView1_PageIndexChanging(object sender, C1.Web.Wijmo.Controls.C1GridView.C1GridViewPageEventArgs e){C1GridView1.PageIndex = e.NewPageIndex;C1GridView1.DataSource = BindGrid();C1GridView1.DataBind();}
分组
实现C1GridView分组功能,设置 AllowColMoving 和 ShowGroupArea 属性为 true。我们需要操作ColumnGrouped 和 ColumnUngrouped 事件,我们需要在 ColumnGrouped 事件中通过事件参数来重现绑定数据源。参数的 HeaderText 属性是拖拽列的列头文本。参数首先用于排序该列,然后实现分组,这样可以避免重复分组。
//操作列分组protected void C1GridView1_ColumnGrouped(object sender, C1.Web.Wijmo.Controls.C1GridView.C1GridViewColumnGroupedEventArgs e){C1GridView1.DataSource = BindGrid(e.Drag.HeaderText);C1GridView1.DataBind();}//取消列分组protected void C1GridView1_ColumnUngrouped(object sender, C1.Web.Wijmo.Controls.C1GridView.C1GridViewColumnUngroupedEventArgs e){}
Demo 下载:
更多关于 C1GridView 表格控件的信息,请参考: