java-ext 数据分页显示问题

本文介绍了一种基于Java后台的分页查询方法及前端ExtJS框架的数据展示方式,包括了参数传递、数据处理和页面配置等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 //以分页的形式返回数据
    public static  Map<String, Object> resultpage( HttpServletRequest request,HashMap data) {
        if (data == null) {
            return data;
        }
        Map<String, Object> result = new HashMap<String, Object>();
        Integer page = Integer.valueOf(request.getParameterValues("page")[0].toString());
        Integer start = Integer.valueOf(request.getParameterValues("start")[0].toString());
        Integer limit = Integer.valueOf(request.getParameterValues("limit")[0].toString());
        List list =  (List)data.get("list");
        List temp = new ArrayList();
        int total = list.size();
        int end = start + limit > total ? total : start + limit;
        for(int i = start ; i < end ; i++){
            temp.add(list.get(i));
        }
        result.put("list",temp);
        result.put("total",total);
        result.put("success", true);
        return result;
    }



/*签收单位加载*/controller
    @RequestMapping(value = "/choSignUnit", method = RequestMethod.POST)
    @ResponseBody
    public Map<String, Object> choSignUnit(
            @RequestParam(value = "v_departname") String v_departname,
            HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        Map<String, Object> result = new HashMap<String, Object>();
        HashMap data = jrule00Service.choSignUnit(v_departname);
        return resultpage(request,data);
    }



 //表格信息加载
    var gridStore = Ext.create('Ext.data.Store', {
        id: 'gridStore',
        autoLoad: false,
        pageSize:5,
        fields: ['DEPARTCODE', 'DEPARTNAME', 'SIGN_LEVEL', 'SIGN_DEPART', 'EXEDEPART',  'SIGN_USERID', 'SIGN_USERNAME'],
        proxy: {
            type: 'ajax',
            async: false,
            url: AppUrl + 'Jrule00/choSignUnit',
            actionMethods: {
                read: 'POST'
            },
            reader: {
                type: 'json',
                root: 'list',
                total: 'total'
            }
        }
    });



      var grid = Ext.create('Ext.grid.Panel', {
        region: 'center',
        id: 'grid',
        columnLines: true,
        width: '100%',
        autoScroll: true,
        store: gridStore,
        autoWidth: true,
        height: 400,
        columns: [
            {text :  '选择',dataIndex : 'COMMON_ID',width : 70,align:'center',renderer:check},
            {text: '签收单位编码', width : 240, dataIndex: 'DEPARTCODE', align: 'center'},
            {text: '签收单位名', width : 240, dataIndex: 'DEPARTNAME', align: 'center'},
            {text: '签收层级', width : 240, dataIndex: 'SIGN_LEVEL', align: 'center'},
            {text: '执行部门', width : 240, dataIndex: 'EXEDEPART', align: 'center'},
            {text: '签收人', width : 240, dataIndex: 'SIGN_USERNAME', align: 'center'}],
        bbar: [{
            id: 'page',
            xtype: 'pagingtoolbar',
            dock: 'bottom',
            displayInfo: true,
            displayMsg: '显示第{0}条到第{1}条记录,一共{2}条',
            emptyMsg: '没有记录',
            store: 'gridStore'
        }]
    });

        Ext.data.StoreManager.lookup('gridStore').on('beforeload', function (store) {
        store.proxy.extraParams = {
            v_departname:Ext.getCmp('qsdw').getValue()
        }
    });
    QueryGrid()
    function QueryGrid() {
    Ext.data.StoreManager.lookup('gridStore').load({
        params: {
            v_departname:Ext.getCmp('qsdw').getValue()
        }
    });
}

---------------------------------------------------
    @RequestMapping(value = "selDownMenu", method = RequestMethod.POST)
    @ResponseBody
    public Map<String, Object> selDownMenu(
            @RequestParam(value = "v_up_menu_id", required = false) String v_up_menu_id,
            HttpServletRequest request,
            HttpServletResponse response)
            throws SQLException {
        Map<String, Object> result = new HashMap<String ,Object>();
                HashMap data=Jrule06Service.selDownMenu(v_up_menu_id);

        return setPage(request,response,data);
    }
    //---------------------------------------------------
    public class Page {
    private int start;
    private int limit;
    public int getStart() {
       return start;
    }
    public void setStart(int start) {
       this.start = start;
    }
   public int getLimit() {
       return limit;
    }
    public void setLimit(int limit) {
        this.limit = limit;
    }
    public Integer getPage(){
      return (start/limit)+1;
    }
 }
 //---------------------------------------
    @RequestMapping(value = "/setPage", method = RequestMethod.POST)
    @ResponseBody
    public Map<String, Object> setPage(HttpServletRequest req,HttpServletResponse res, HashMap data) {
        if (data == null) {
            return data;
        }
        Map<String, Object> result = new HashMap<String, Object>();
        res.setContentType("text/plain");
        Integer start = Integer.parseInt(req.getParameter("start"));
        Integer limit = Integer.parseInt(req.getParameter("limit"));

 / -- / Integer start = Integer.valueOf(req.getParameterValues("start")[0].toString());
 / --/  Integer limit = Integer.valueOf(req.getParameterValues("limit")[0].toString());

        Page page=new Page();
        page.setStart(start);
        page.setLimit(limit);
        List list =  (List)data.get("list");
        List temp = new ArrayList();
        int total = list.size();
        int end = start + limit > total ? total : start + limit;
        for(int i = start ; i < end ; i++){
            temp.add(list.get(i));
        }
        result.put("list",temp);
        result.put("total",total);
        result.put("success", true);
        return result;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值