2015-06-19 40 views
0

我一直有一些問題得到serverPaging選項在kendoGrid上工作。我搜索了幾個小時,似乎無法按照我期望的那樣工作。以下是我有:劍道serverPaging使用JavaScript和網絡API

API調用:

[HTTPGet] 
[Route("GetItemsByPage", Name = "GetItemsByPage"] 
public IEnumerable<IItem> GetByPage(int id, int page, int pageSize) 
{ 
return foo.GetByPage(id, page, pageSize); 
} 

JS:

var sharedDatasource = new kendo.data.Datasource({ 
    transport: { 
     read: { 
      url: "localhost:2222/api/product/Items/GetByPage/?id=38&page=1&pageSize=100" 
      dataType: "json" 
     } 
    }, 
    schema: { 
     total: // function to return total // 
     // rest of schema info // 
    }, 
    page: 1, 
    pageSize: 100, 
    serverPaging: true 
}); 

然後我有(細說明了一切),連接到網格格的數據源。這只是服務器分頁,我遇到了問題。我可以使用另一個API調用來獲取所有項目,然後允許本地分頁,但我不想一次獲取所有數據。

回答

0

,您應該設置transport.parameterMap option你的數據源

var sharedDatasource = new kendo.data.Datasource({ 
    transport: { 
     read: { 
      url: "localhost:2222/api/product/Items/GetByPage/?id=38&page=1&pageSize=100" 
      dataType: "json" 
     }, 
     parameterMap: function(data, type) { 
     if (type == "read") { 
      // send take as "$top" and skip as "$skip" 
      return { 
       pageSize: data.pageSize, 
       page: data.page 
      } 
     } 
    } 

    }, 
    page: 1, 
    pageSize: 100, 
    serverPaging: true 
}); 

我不知道什麼是你的代碼id。但我希望你能理解這個想法。