Wijmo 更优美的jQuery UI部件集:运行时处理Wijmo GridView数据操作

C1GridView具有很多内置的功能,比如排序过滤分页以及分组

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

本文讨论了当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更新)!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

mysql_stmt_prepare failed! error(1461)Can't create more than

1461错误, mysql_stmt_prepare failed! 今天现场咨询我们问如何处理1461错误。 mysql_stmt_prepare faile...

63180
来自专栏Android干货园

Base封装(一)--我的最简MVP架构

版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/73...

17510
来自专栏知识分享

android 权限动态申请

但是Android6.0之后呢,有些权限必须手动让用户同意才可以,哪些权限需要用户手动同意,哪些不需要这里大家自行百度

10320
来自专栏杨建荣的学习笔记

Oracle 12c Data Guard搭建(一) (r10笔记第57天)

对于使用12c的PDB,如果想尽快熟悉,掌握,那就是和业务挂钩,让它跑在业务上。当然是在能够基本驾驭它的前提下,要不就真成了甩手掌柜。11g可以玩得很好...

45890
来自专栏杨建荣的学习笔记

Oracle 12c PDB中碰到的DG问题 (r10笔记第63天)

Oracle 12c中的PDB一下子让数据文件的格式复杂了一些,所以Data Guard就很有必要了,一旦出现问题,受损失的数据库是全局的。没想到在搭建Data...

397110
来自专栏向治洪

android 网络通信框架volly

1. 什么是Volley 在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection...

21150
来自专栏潇涧技术专栏

Art of Android Development Reading Notes 8

《Android开发艺术探索》读书笔记 (8) 第8章 理解Window和WindowManager

9510
来自专栏懒人开发

BottomNavigationView简单使用

之前见过类似这个库, 是带ripple效果的 不记得具体地址了,和这个类似 https://github.com/Ashok-Varma/BottomNav...

11530
来自专栏学海无涯

Android开发之DownloadManager的使用

Android 开发中,经常有从服务器下载数据的需求出现,尤其是在线更新App的情形。其基本思路是根据本地的App版本号和服务器的版本号进行比较,如果服务器版本...

43070
来自专栏7号代码

Android应用界面开发——BroadcastReceiver(实现基于Service的音乐播放器)

BroadcastReceiver用于接收程序(开发者开发的程序和系统程序)发出的Broadcast Intent,程序启动BroadcastReceiver需...

16320

扫码关注云+社区

领取腾讯云代金券