找回密码
 立即注册

QQ登录

只需一步,快速开始

gw0506

超级版主

182

主题

4213

帖子

9053

积分

超级版主

Rank: 8Rank: 8

积分
9053

活字格认证

gw0506
超级版主   /  发表于:2012-4-24 15:11  /   查看:7492  /  回复:0
C1GridView具有很多内置的功能,比如排序过滤分页以及分组





对于开发者来说,这些都是很有用的功能,因为它们可以节省大量通过代码实现这些能力的时间。
无论如何,开发人员不一定非要将其在设计时绑定到一个数据源。实际上,在大多数情况下,数据是动态绑定的。

本文讨论了当C1GridView动态绑定数据时如何实现排序,过滤分页以及分组。
绑定C1GridView
C1GridView可以绑定到一个ADO.NET数据源,比如说DataSet,DataTable等等。对于本示例,我们将grid绑定到C1NWind.mdb数据库文件的“Customers”表上。
  1. public DataSet BindGrid()
  2. {
  3.     OleDbConnection con = new OleDbConnection("provider=Microsoft.Jet.Oledb.4.0; Data Source=" + Server.MapPath("~/App_Data/C1NWind.mdb"));
  4.     OleDbDataAdapter da;
  5.     DataSet ds = new DataSet();
  6.     da = new OleDbDataAdapter("Select * from Customers", con);
  7.     da.Fill(ds);
  8.     return ds;
  9. }
  10. protected void Page_Load(object sender, EventArgs e)
  11. {
  12.     if (!IsPostBack)
  13.     {
  14.         C1GridView1.DataSource = BindGrid();
  15.         C1GridView1.DataBind();
  16.     }
  17. }
复制代码
处理C1GridView事件
排序
为了实现排序,我们需要处理Sorting以及Sorted事件。Grid会在Sorted事件中被重新绑定。
  1. protected void C1GridView1_Sorting(object sender, C1.Web.Wijmo.Controls.C1GridView.C1GridViewSortEventArgs e)
  2. {
  3. }
  4. //处理 Sorting
  5. protected void C1GridView1_Sorted(object sender, EventArgs e)
  6. {
  7.     C1GridView1.DataSource = BindGrid();
  8.     C1GridView1.DataBind();
  9. }
复制代码
过滤
处理过滤的代码和处理排序的逻辑完全相同。我们需要处理Filtering 以及Filtered事件。
  1. protected void C1GridView1_Filtering(object sender, C1.Web.Wijmo.Controls.C1GridView.C1GridViewFilterEventArgs e)
  2. {
  3. }
  4. //处理Filtering
  5. protected void C1GridView1_Filtered(object sender, EventArgs e)
  6. {
  7.     C1GridView1.DataSource = BindGrid();
  8.     C1GridView1.DataBind();
  9. }
复制代码
分页
处理分页的逻辑和处理排序和过滤得逻辑有一点点不同。我们只需要处理Paging事件。首先将G1GridView的PageIndex设置为NewPageIndex,然后就像我们之前所作的那样,对grid进行重新绑定。
  1. protected void C1GridView1_PageIndexChanging(object sender, C1.Web.Wijmo.Controls.C1GridView.C1GridViewPageEventArgs e)
  2. {
  3.     C1GridView1.PageIndex = e.NewPageIndex;
  4.     C1GridView1.DataSource = BindGrid();
  5.     C1GridView1.DataBind();
  6. }
复制代码
分组
为了对C1GridView进行分组,需要将AllowColMoving以及ShowGroupArea属性设置为true。我们还需要处理ColumnGrouped以及ColumnUngrouped事件,并且将ColumnUngrouped事件留空。然而,在ColumnGrouped事件中,我们必须重新绑定grid。不同的是,这次我们需要添加一个参数,这个参数就是正在被拖拽或者分组的列的HeaderText。这个参数首先被用来按照该列进行排序,之后应用分组,以确保不会创建重复分组。
  1. //处理 Column Grouping
  2. protected void C1GridView1_ColumnGrouped(object sender,   C1.Web.Wijmo.Controls.C1GridView.C1GridViewColumnGroupedEventArgs e)
  3. {
  4.     C1GridView1.DataSource = BindGrid(e.Drag.HeaderText);
  5.     C1GridView1.DataBind();
  6. }
  7. //处理Column UnGrouping
  8. protected void C1GridView1_ColumnUngrouped(object sender, C1.Web.Wijmo.Controls.C1GridView.C1GridViewColumnUngroupedEventArgs e)
  9. {
  10. }
复制代码


下载示例


Wijmo下载,请进入Studio for ASP.NET Wijmo 2012 v1正式发布(2012.03.22更新)!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部