gentoo今天的收获[原创]
2008-07-31 18:27
253 查看
C1GridView具有很多内置的功能,比如排序,过滤,分页以及分组。
对于开发者来说,这些都是很有用的功能,因为它们可以节省大量通过代码实现这些能力的时间。
无论如何,开发人员不一定非要将其在设计时绑定到一个数据源。实际上,在大多数情况下,数据是动态绑定的。
本文讨论了当C1GridView动态绑定数据时如何实现排序,过滤分页以及分组。
绑定C1GridView
C1GridView可以绑定到一个ADO.NET数据源,比如说DataSet,DataTable等等。对于本示例,我们将grid绑定到C1NWind.mdb数据库文件的“Customers”表上。
处理C1GridView事件
排序
为了实现排序,我们需要处理Sorting以及Sorted事件。Grid会在Sorted事件中被重新绑定。
过滤
处理过滤的代码和处理排序的逻辑完全相同。我们需要处理Filtering 以及Filtered事件。
分页
处理分页的逻辑和处理排序和过滤得逻辑有一点点不同。我们只需要处理Paging事件。首先将G1GridView的PageIndex设置为NewPageIndex,然后就像我们之前所作的那样,对grid进行重新绑定。
分组
为了对C1GridView进行分组,需要将AllowColMoving以及ShowGroupArea属性设置为true。我们还需要处理ColumnGrouped以及ColumnUngrouped事件,并且将ColumnUngrouped事件留空。然而,在ColumnGrouped事件中,我们必须重新绑定grid。不同的是,这次我们需要添加一个参数,这个参数就是正在被拖拽或者分组的列的HeaderText。这个参数首先被用来按照该列进行排序,之后应用分组,以确保不会创建重复分组。
对于开发者来说,这些都是很有用的功能,因为它们可以节省大量通过代码实现这些能力的时间。
无论如何,开发人员不一定非要将其在设计时绑定到一个数据源。实际上,在大多数情况下,数据是动态绑定的。
本文讨论了当C1GridView动态绑定数据时如何实现排序,过滤分页以及分组。
绑定C1GridView
C1GridView可以绑定到一个ADO.NET数据源,比如说DataSet,DataTable等等。对于本示例,我们将grid绑定到C1NWind.mdb数据库文件的“Customers”表上。
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事件。Grid会在Sorted事件中被重新绑定。
protected void C1GridView1_Sorting(object sender, C1.Web.Wijmo.Controls.C1GridView.C1GridViewSortEventArgs e) { } //处理 Sorting protected void C1GridView1_Sorted(object sender, EventArgs e) { C1GridView1.DataSource = BindGrid(); C1GridView1.DataBind(); }
过滤
处理过滤的代码和处理排序的逻辑完全相同。我们需要处理Filtering 以及Filtered事件。
protected void C1GridView1_Filtering(object sender, C1.Web.Wijmo.Controls.C1GridView.C1GridViewFilterEventArgs e) { } //处理Filtering protected void C1GridView1_Filtered(object sender, EventArgs e) { C1GridView1.DataSource = BindGrid(); C1GridView1.DataBind(); }
分页
处理分页的逻辑和处理排序和过滤得逻辑有一点点不同。我们只需要处理Paging事件。首先将G1GridView的PageIndex设置为NewPageIndex,然后就像我们之前所作的那样,对grid进行重新绑定。
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事件,并且将ColumnUngrouped事件留空。然而,在ColumnGrouped事件中,我们必须重新绑定grid。不同的是,这次我们需要添加一个参数,这个参数就是正在被拖拽或者分组的列的HeaderText。这个参数首先被用来按照该列进行排序,之后应用分组,以确保不会创建重复分组。
//处理 Column Grouping protected void C1GridView1_ColumnGrouped(object sender, C1.Web.Wijmo.Controls.C1GridView.C1GridViewColumnGroupedEventArgs e) { C1GridView1.DataSource = BindGrid(e.Drag.HeaderText); C1GridView1.DataBind(); } //处理Column UnGrouping protected void C1GridView1_ColumnUngrouped(object sender, C1.Web.Wijmo.Controls.C1GridView.C1GridViewColumnUngroupedEventArgs e) { }
下载示例
Wijmo下载,请进入Studio for ASP.NET Wijmo 2012 v1正式发布(2012.03.22更新)!相关文章推荐
- gentoo今天收获记录[原创]
- 今天学习编程有收获
- [B原创] 今天买了一块S3C2410的开发板,高兴ing,以后可以做实验了!
- 收获今天,创造明天
- 今天颇有收获:)
- 今天学习java的一点收获
- 20161026总结一下今天的收获
- 我今天的收获,必备stadio 插件
- 【原创】项目管理论坛收获分享
- 硬盘安装Gentoo(原创)
- 今天的收获
- [导入]今天看《ASP.NET技术内幕》收获不少!
- 今天收获不小啊~~嘻嘻.......
- 【原创】今天把我的128X64整了贪吃蛇 ---2007.10(搬家修复)
- update-pciids 今天才发现有这玩意,菜[原创]
- 今天有点收获
- 今天的收获 2013.5.3
- 今天第一收获
- 今天的收获
- 今天英语有何新收获?