jquery easyui datagrid 分页详解

由于项目原因,用了jquery easyui 感觉界面不错,皮肤样式少点,可是官网最近打不开了,资料比较少,给的demo没有想要的效果,今天在用datagrid 做分页显示的时候,折腾了半天,网上的资料也比较少,后自己动手,终于解决,废话不说,开始:

datagrid分页有一个附加的分页控件,只需后台获取分页控件自动提交的两个参数rows每页显示的记录数和page;//当前第几页

然后读取相应页数的记录,和总记录数total一块返回即可 界面如下:

1、下边是datagrid的显示对话框,我直接用table把列头显示出来,感觉比用js写要易于阅读

<table id="list_data" cellspacing="0" cellpadding="0">
    <thead>
        <tr>
            <th field="fldAppDept" width="100">部门</th>
            <th field="fldAppNode" width="100">网站</th>
            <th field="fldAppName" width="100">名称</th>
            <th field="fldAppMgr" width="100">管理员</th>
            <th field="fldAppNote" width="100">注释</th>
            <th field="fldAppType" width="100">类型</th>
            <th field="fldTelphone" width="100">电话</th>
            <th field="fldAppImg" width="100">职务</th>
            <th field="fldAppMonitor" width="100">启用监测</th>
            <th field="fldAppLevel" width="100">要重级别</th>
        </tr>
    </thead>
</table> 

2、js代码,用于构建datagrid

注意 要想显示分页控件,pagination属性必须为true

$(function() {
    //datagrid初始化
    $(‘#list_data‘).datagrid({
        title:‘应用系统列表‘,
        iconCls:‘icon-edit‘,//图标
        width: 700,
        height: ‘auto‘,
        nowrap: false,
        striped: true,
        border: true,
        collapsible:false,//是否可折叠的
        fit: true,//自动大小
        url:‘listApp.action‘,
        //sortName: ‘code‘,
        //sortOrder: ‘desc‘,
        remoteSort:false,
        idField:‘fldId‘,
        singleSelect:false,//是否单选
        pagination:true,//分页控件
        rownumbers:true,//行号
        frozenColumns:[[
            {field:‘ck‘,checkbox:true}
        ]],
        toolbar: [{
            text: ‘添加‘,
            iconCls: ‘icon-add‘,
            handler: function() {
                openDialog("add_dialog","add");
            }
        }, ‘-‘, {
            text: ‘修改‘,
            iconCls: ‘icon-edit‘,
            handler: function() {
                openDialog("add_dialog","edit");
            }
        }, ‘-‘,{
            text: ‘删除‘,
            iconCls: ‘icon-remove‘,
            handler: function(){
                delAppInfo();
            }
        }],
    });
    //设置分页控件
    var p = $(‘#list_data‘).datagrid(‘getPager‘);
    $(p).pagination({
        pageSize: 10,//每页显示的记录条数,默认为10
        pageList: [5,10,15],//可以设置每页记录条数的列表
        beforePageText: ‘第‘,//页数文本框前显示的汉字
        afterPageText: ‘页    共 {pages} 页‘,
        displayMsg: ‘当前显示 {from} - {to} 条记录   共 {total} 条记录‘,
        /*onBeforeRefresh:function(){
            $(this).pagination(‘loading‘);
            alert(‘before refresh‘);
            $(this).pagination(‘loaded‘);
        }*/
    });
});

3、后台我是通过struts2处理的数据 返回json串

private JSONObject result;//返回的json  

    private String rows;//每页显示的记录数  

    private String page;//当前第几页  

        private AppServiceInter appService;  

    public JSONObject getResult() {
        return result;
    }
    public void setResult(JSONObject result) {
        this.result = result;
    }
    public void setAppService(AppServiceInter appService) {
        this.appService = appService;
    }  

        public String getRows() {
        return rows;
    }
    public void setRows(String rows) {
        this.rows = rows;
    }
    public String getPage() {
        return page;
    }
    public void setPage(String page) {
        this.page = page;
    }
        /**
     * 查询应用系统
     * @return
     */
    public String listApp() {
        System.out.println("---------------");
        //当前页
        int intPage = Integer.parseInt((page == null || page == "0") ? "1":page);
        //每页显示条数
        int number = Integer.parseInt((rows == null || rows == "0") ? "10":rows);
        //每页的开始记录  第一页为1  第二页为number +1
        int start = (intPage-1)*number;  

        List<TblApp> list = appService.findByPageApp(start,number);//每页的数据,放入list
            Map<String, Object> jsonMap = new HashMap<String, Object>();//定义map
            jsonMap.put("total", appService.getCountApp());//total键 存放总记录数,必须的
            jsonMap.put("rows", list);//rows键 存放每页记录 list
            result = JSONObject.fromObject(jsonMap);//格式化result   一定要是JSONObject  

        //result = JSONArray.fromObject(jsonMap);
        return SUCCESS;
    }  

4、附上struts.xml配置文件

<package name="app" extends="json-default">
        <action name="listApp" class="appAction" method="listApp">
            <result type="json">
                <param name="root">result</param>
            </result>
        </action>
</package>  

特写出这些,方便自己或他人以后参考 ,如果有什么问题大家可以留言......

本文转自:http://www.cnblogs.com/huozhicheng/archive/2011/09/27/2193605.html

时间: 2024-11-05 13:40:40

jquery easyui datagrid 分页详解的相关文章

jquery easyui datagrid 分页 详解

前些天用jquery easyui的table easyui-datagrid做分页显示的时候,折腾了很久,后来终于解决了.其实不难,最主要我不是很熟悉前端的东西. table easyui-datagrid分页 有一个附加的分页控件,只需后台获取分页控件自动提交的两个参数rows(每页显示的记录数)和page(当前第几页)然后读取相应页数的记录,和总记录数total一块返回即可. 1.界面 2.前端代码 <table id="dg" title="文章管理"

jquery easyui datagrid 分页数据请求

jquery easyui datagrid内置了分页的功能,当设置为 pagination: true 以后就能够启用分页功能. 启用分页以后,jquery easyui datagrid发送的数据请求中会包含两个参数: int iPageIndex = Convert.ToInt32(this.Request["page"]); int iPageSize = Convert.ToInt32(this.Request["rows"]); 这两个参数分别是当前页码

easyui datagrid 分页略解

easyui datagrid 本身自带了分页功能. 但是这个需要你自己控制. 在后台可以得到两个datagrid的参数,rows 和page.其中rows是每页要显示的个数,page是第几页.单纯的设置rows是不行 的,datagrid真正显示的是你 从数据库里得到的真正条数,应该用rows当查询条件,得到rows条才行. 传到前台的json传应该是这样的: {"total":50,"rows":[{"sex":"nan16&quo

jquery easyui datagrid 分页实现

通常情况下页面数据的分页显示分成真假两种.真分页是依靠后台查询时控制调出数据的数量来实现分页,也就是说页面在后台对数据进行处理,仅传输当前需要页的数据到前台来显示.而假分页则是后台一次性将所有的数据一起传送到前台,再由前端程序来控制数据的显示与遮蔽. 既然要分页,那么首先就必须要获得所有的数据,并且知道数据的数量.这步可以是由后台程序返回告知,当然也可以有javascript自己去读取. datagrid分页 有一个附加的分页控件,只需后台获取分页控件自动提交的两个参数rows每页显示的记录数和

jQuery EasyUI datagrid实现本地分页的方法

本文实例讲述了jQuery EasyUI datagrid实现本地分页的方法.分享给大家供大家参考.具体如下: 一般分页都是后台做,前端做无论从哪方面考虑都不合适.但是有的时候还是有这种需求. 这里重点用到了pagination的监听,以及JS数组的slice方法来完成.代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 3

jQuery EasyUI DataGrid API 中文文档

扩展自$.fn.panel.defaults,用 $.fn.datagrid.defaults重写了 defaults . 依赖 panel resizable linkbutton pagination 用法 1.  <table id="tt"></table> 1.  $('#tt').datagrid({ 2.      url:'datagrid_data.json', 3.      columns:[[ 4.          {field:'co

EasyUI + Struts2 + Ajax 显示 easyui datagrid 分页效果

1.Html代码 1 <script type="text/javascript" src="/js/easyui/jquery.min.js"></script> 2 <script type="text/javascript" src="/js/easyui/jquery.easyui.min.js"></script> 3 <script type="tex

jQuery EasyUI Datagrid组件的完整的基础DOM结构

该日志由 世纪之光 于2年前发表在datagrid分类下 转载: jQuery EasyUI Datagrid组件的完整的基础DOM结构 | WebUI框架使用参考+ http://www.easyui.info/archives/1157.html 关键字: datagrid源码分析, datagrid结构, easyui源码分析 标题可能有点长,什么叫“完整的基础DOM结构”,这里“基础”的意思是指这个结构不依赖具体数据,不依赖Datagrid的view属性,只要存在Datagrid实例就会

jQuery Easyui datagrid 数据表格的使用

jQuery Easyui datagrid 数据表格的使用1. 在页面显示表格的位置 提供<table>标签,指定 id 元素2. 在 JS 代码 $("#grid").datagrid({-}); 完成对表格设置表格列定义远程数据加载分页 顶部工具栏 代码效果 原文地址:https://blog.51cto.com/13587708/2420696