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,數字,或者一個空變量都可以。如果不傳參數的話會報錯。無法解析。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM