• 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

    //datagrid初始化  
        $('#list_data').datagrid({  
            title:'应用系统列表',  
            iconCls:'icon-edit',//图标  
             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>  
    

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




  • 相关阅读:
    Github
    Vocabulary in Computer
    js中三种定义变量的方式const, var, let的区别
    Node.js-1
    JSON_in_js
    JSON快速入门
    Mysql tinyint长度为1时在java中被转化成boolean型
    maven上解决循环依赖、又不想新加第三模块的方法
    关于springboot和tomcat的服务能力做下简单的测试
    tomcat各个端口的作用
  • 原文地址:https://www.cnblogs.com/huozhicheng/p/2193605.html
Copyright © 2020-2023  润新知