← 返回所有博客文章

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 事件

排序
实现排序功能,我们需要操作 SortingSorted 事件,在 Sorted 事件中需要重新绑定数据源。

protected void C1GridView1_Sorting(object sender, C1.Web.Wijmo.Controls.C1GridView.C1GridViewSortEventArgs e)
{
}
//Handles Sorting
protected void C1GridView1_Sorted(object sender, EventArgs e)
{
    C1GridView1.DataSource = BindGrid();
    C1GridView1.DataBind();
}

 

过滤
实现过滤功能,我们需要操作 FilteringFiltered 事件,在 Filtered 事件中需要重新绑定数据源。

protected void C1GridView1_Filtering(object sender, C1.Web.Wijmo.Controls.C1GridView.C1GridViewFilterEventArgs e)
{
}
//Handles Filtering
protected 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 表格控件的信息,请参考:

http://www.grapecity.com.cn/developer/c1_asp_gridview.htm