kendo ui中grid页面参数问题

kendo ui 中grid 算是最长用的控件之一,当使用分页效果时,我们要传递分页参数与自己定义的参数如:

 1 var dataSource = new kendo.data.DataSource({
 2             transport: {
 3                 read : {
 4                     url : "对应后台路径", 
 5                     contentType : "application/json",
 6                     type : "POST", 
 7                     dataType : "json"
 8                 },
 9                 parameterMap : function(options, operation) {
10                     if (operation == "read") {
11                         var parameter = {
12                             page : options.page,
13                             pageSize : options.pageSize,
14                             take : options.take,
15                             skip : options.skip
16                         };
17                         return kendo.stringify(parameter);
18                     }
19                 }
20             },
21             serverPaging: true,
22             pageSize: 20,
23             schema : {
24                 model : {
25                 id : "",
26                 },
27                 data: function (response) {
28                     return response.data;
29                 },
30                 total: function (response) {
31                     return response.total;
32                 }
33             },
34      });

对应的grid写法为:

$("#XXXX").kendoGrid({
        dataSource : dataSource,
        height: ,
        toolbar: kendo.template($("#template").html()),
        pageable: {
            refresh: true,
            pageSizes: true,
            buttonCount: 5,
            page: 1,
            pageSize: 20,
            pageSizes: [20, 50, 100, 500]
        },
        columns: [
            {field : "XX",        title :"XX"    },
            {field : "XX",        title :"XX"    },
            {field : "XX",        title :"XX"    },
            {field : "XX",        title :"XX"    },
            {field : "XX",        title :"XX"    },
        ],
        selectable: "row",
        sortable:true,
        resizable: true
    }).data("kendoGrid");

后台解析方法(JAVA后台)当:

    @Override
    public String XXX(String info) {
        JSONObject json = JSONObject.fromObject(info);
        PageBounds pageBounds = new PageBounds(Integer.parseInt(json.get("page").toString()), Integer.parseInt(json.get("pageSize").toString()));
        Map<String,Object> map = new HashMap<String, Object>();//注意这里定义了一个空的map没有赋值,是为了占位,如果需要可以赋值
        PageList<Map<String, Object>> list = (PageList<Map<String, Object>>) XXXDao.XXX(pageBounds,map);
        
        try {
            list = (PageList<Map<String, Object>>) XXXDao.XXX(pageBounds,map);
        } catch (Exception e) {
            logger.error("获取信息列表失败!  具体信息为:     " + e);
        }
        
        JSONObject jsonObj = new JSONObject();
        jsonObj.accumulate("data", JSONArray.fromObject(list));
        jsonObj.accumulate("total", list.getPaginator().getTotalCount());
        return jsonObj.toString();
    }

 

dao层impl代码
@Override public List
<Map<String,Object>> XXX(PageBounds pageBounds,Map<String,Object> map) { return sqlSessionTemplate.selectList("XXDao.XXX",map,pageBounds); }

此处特别需要注意的是selectList()内部传递的是三个参数,第一个大家都知道是dao层的路径,第二个是页面内的其他参数(比如你需要从前台传到后台的用户ID等等),第三个就是你解析的前台grid分页参数,如果当你页面不需要传递其他参数的时候,第二个参数需要用一个变量占位,这个变量可以是NULL,数字,或者一个空变量都可以。如果不传参数的话会报错。无法解析。

 

posted @ 2016-01-27 18:07  失落沙洲  阅读(10716)  评论(4编辑  收藏  举报