easyui的datagrid的分页问题
来源:互联网 发布:部落冲突疗伤法术数据 编辑:程序博客网 时间:2024/05/13 18:12
首先尝试了一下官方的分页方法:即采用pagerFilter方法。如下所示
functionpagerFilter(data){ if (typeof data.length =='number' && typeof data.splice == 'function'){ // is array data = { total: data.length, rows: data } } var dg = $(this); var opts =dg.datagrid('options'); var pager =dg.datagrid('getPager'); pager.pagination({ onSelectPage:function(pageNum,pageSize){ opts.pageNumber= pageNum; opts.pageSize= pageSize; pager.pagination('refresh',{ pageNumber:pageNum, pageSize:pageSize }); dg.datagrid('loadData',data); } }); if (!data.originalRows){ data.originalRows =(data.rows); } var start = (opts.pageNumber-1)*parseInt(opts.pageSize); var end = start +parseInt(opts.pageSize); data.rows =(data.originalRows.slice(start, end)); return data;}
但是不知道为啥总是报不支持"'refresh'"的属性或方法,没有研究出来。知道的可以留言告诉偶一下嘛。就改用服务器后台的分页方法。
public class EmployeeIOHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; //获取分页和排序信息:页大小,页码,排序方式,排序字段 int pageSize, pageIndex; pageSize = 10; pageIndex = 1; string order, sort, oderby; order = sort = oderby = ""; if (null != context.Request["rows"]) { //获取前台传过来的每页显示数据的条数 pageSize = int.Parse(context.Request["rows"].ToString().Trim()); } if (null != context.Request["page"]) { //获取当前的页码 pageIndex = int.Parse(context.Request["page"].ToString().Trim()); } //context.Response.Write("Hello World"); string strJSON = DataTableToJson(QueryDetailByDeptType("").Tables[0], pageIndex, pageSize); //分页显示 context.Response.Write(strJSON); context.Response.End(); } private DataSet QueryDetailByDeptType(string strLinkName) { ........................ return ds; } /// <summary> /// 根据页数、页码等进行分页显示数据 /// </summary> /// <param name="dt"></param> /// <param name="PageIndex"></param> /// <param name="PageSize"></param> /// <returns></returns> public static string DataTableToJson(DataTable dt, int PageIndex, int PageSize) { StringBuilder jsonBuilder = new StringBuilder(); jsonBuilder.Append("{\"total\":"); jsonBuilder.Append(dt.Rows.Count); jsonBuilder.Append(",\"rows\":["); DataTable cdt = SplitDataTable(dt,PageIndex,PageSize); for (int i = 0; i < cdt.Rows.Count; i++) { jsonBuilder.Append("{"); for (int j = 0; j < cdt.Columns.Count; j++) { jsonBuilder.Append("\""); jsonBuilder.Append(cdt.Columns[j].ColumnName); jsonBuilder.Append("\":\""); jsonBuilder.Append(cdt.Rows[i][j].ToString()); jsonBuilder.Append("\","); } if (cdt.Columns.Count > 0) { jsonBuilder.Remove(jsonBuilder.Length - 1, 1); } jsonBuilder.Append("},"); } if (cdt.Rows.Count > 0) { jsonBuilder.Remove(jsonBuilder.Length - 1, 1); } jsonBuilder.Append("]}"); return jsonBuilder.ToString(); } /// <summary> /// 根据索引和pagesize返回记录 /// </summary> /// <param name="dt">记录集 DataTable</param> /// <param name="PageIndex">当前页</param> /// <param name="pagesize">一页的记录数</param> /// <returns></returns> public static DataTable SplitDataTable(DataTable dt, int PageIndex, int PageSize) { if (PageIndex == 0) return dt; DataTable newdt = dt.Clone(); //newdt.Clear(); int rowbegin = (PageIndex - 1) * PageSize; int rowend = PageIndex * PageSize; if (rowbegin >= dt.Rows.Count) return newdt; if (rowend > dt.Rows.Count) rowend = dt.Rows.Count; for (int i = rowbegin; i <= rowend - 1; i++) { DataRow newdr = newdt.NewRow(); DataRow dr = dt.Rows[i]; foreach (DataColumn column in dt.Columns) { newdr[column.ColumnName] = dr[column.ColumnName]; } newdt.Rows.Add(newdr); } return newdt; } public bool IsReusable { get { return false; } } }
尚存在一个这样的问题:就是页面前端设置成不分页的时候,这里仍显示分页中的第一页。
参考资料:
1、http://www.cnblogs.com/infozero/archive/2009/11/06/1597727.html
2、http://www.cnblogs.com/huozhicheng/archive/2011/09/27/2193605.html
3、http://www.cnblogs.com/szytwo/archive/2012/08/27/2658673.html#1
4、http://www.tuicool.com/articles/jIVvmu
5、等等
0 0
- easyui的datagrid的分页问题
- Struts2 + easyui的DataGrid 分页
- easyUI的datagrid实现分页
- 关于easyui datagrid前台界面分页的问题
- 如何解决easyui-datagrid分页组件中文显示的问题
- 如何解决easyui-datagrid分页组件中文显示的问题
- Struts2绑定Jquery EasyUI的Datagrid分页
- Struts2绑定Jquery EasyUI的Datagrid分页
- easyUI的datagrid 分页保存选中状态
- easyui的datagrid使用以及分页
- springmvc+easyUI的DataGrid分页功能
- easyui datagrid 的分页和筛选
- easyUI之DataGrid的分页要点
- EasyUI的datagrid组件实现分页
- easyui datagrid 前台分页的实现
- easyui的datagrid数据问题
- easyui datagrid遇到的问题
- easyui中datagrid分页问题
- pca的具体应用QT+OPENCV人脸主成分提取和还原
- LinearLayout的weight(权重属性)
- scala中的method和function的区别
- meaurespec的初步认识
- Android性能典范:拯救计划
- easyui的datagrid的分页问题
- 6.8.2 qmgr_transport_select函数: 选择QMGR_TRANSPORT 与round borin策略
- iOS - QRCode(二维码)的生成和识别
- 邮箱大师添加outlook2010 方法 图文详解
- swift 之actionSheet 使用
- WEB免费打印控件推荐
- C++实现——大数乘以小数
- 进程间通信的另类实现
- adb工具(通用的调试工具、debug工具)&操作命令详解