var p = $('#mainTable').datagrid('getPager'); if (p){ $(p).pagination({ onSelectPage:function(pageNumber, pageSize){ param = $.extend(param,{page:pageNumber,rows:pageSize});//这步需要把分页参数传给后台做分页查询 $(this).pagination('loading'); loadData(param);//重载数据将datagrid填充。 $(this).pagination('loaded'); }, onBeforeRefresh:function(pageNumber,pageSize){ $(this).pagination('loading'); //progress bar }, onRefresh:function(){ $(this).pagination('loaded'); } }); }
easyUI 的前端分页还是挺完善的,话说只要用一句话就可以搞定。
下面是datagrid方式的分页。先把数据加载到datagrid。。。
$.getJSON(url,function(data){ var _peConfig = data.peIDConfig; var _fzConfig = data.peFZConfig; $("#mainTable").datagrid({ iconCls:'icon-save', nowrap: false, striped: true, collapsible:true, pageSize: 10,//每页显示的记录条数,默认为10 pageList: [5,10,20],//可以设置每页记录条数的列表 // url:param.action+'?id='+param.id+'&t='+Math.random(), onDblClickRow:function(rowIndex, rowData){ // var callback = eval(param.dbClick); // if(callback) // callback(rowData[_peConfig.idField]); //添加双击事件,修改行,传入主键 relatedData(param.action,rowData[_peConfig.idField]); //显示详细信息,传入主键 }, onLoadSuccess:function(data){ // var _parentDiv = $('.pagination-btn-separator').parent().parent().parent; // alert(_parentDiv.html()) // _parentDiv.append("<td><input id=pagerSearch class='mini-textbox-input' searcher='123' prompt='请输入查询值' style='width:200px' /></td>"); // alert(_parentDiv.parents().find("tr").html()) // _parentDiv.parents().find("tr").append("<td><input id=pagerSearch class='mini-textbox-input' searcher='123' prompt='请输入查询值' style='width:200px' /></td>"); // _parentDiv.parents().find("tr").append("<td><div class='pagination-btn-separator'></div></td><td>"+htm+"</td>"); }, loadMsg:"正在载入...", sortName: _peConfig.sortName, sortOrder: _peConfig.sortOrder, height:"300", width:"auto", remoteSort: false, idField:_peConfig.idField, frozenColumns:[[ {field:'ck',checkbox:_peConfig.checkable}, {title:_peConfig.title,field:_peConfig.field,hidden:true,width:"0",sortable:_peConfig.sortable}, {title:_fzConfig.title,field:_fzConfig.field,width:_fzConfig.width,sortable:_fzConfig.sortable} ]], columns:[[ ]], pagination:true, rownumbers:true });
然后填充模版上的一写内容...
datagrid在分页按钮上自动绑定了事件,当点击下一页会触发onSelectPage函数,这时就可以对数据分页进行操作了~
var p = $('#mainTable').datagrid('getPager'); if (p){ $(p).pagination({ onSelectPage:function(pageNumber, pageSize){ param = $.extend(param,{page:pageNumber,rows:pageSize});// $(this).pagination('loading'); loadData(param);//充载 $(this).pagination('loaded'); }, onBeforeRefresh:function(pageNumber,pageSize){ $(this).pagination('loading'); //progress bar }, onRefresh:function(){ $(this).pagination('loaded'); } }); }
这时会对datagrid的属性做重载,界面上的数据都会被刷新掉,那当前页,每页条数都会被刷新。这时就需要下面
$("#mainTable").datagrid('getPager').pagination({pageSize:param.rows,pageNumber:param.page});//分页关键
这样就OK。
分页完成,后台需要接收当前页和每页条数作为分页查询条件,后台上的一些分页逻辑和语句就不贴出来了。
Comments | NOTHING