2013-08-29 76 views
1

我正在將我的應用程序轉換爲使用服務器端分頁與Kendo網格UI。在將serverPaging切換爲true之前,我正確地顯示了我的網格內容,並在客戶端進行了分頁。但是,一旦打開serverPaging,我的數據就不再可見。我已經檢查了網絡電話,並且我的數據正在返回(只有2條記錄總共8條記錄),但我沒有在網格中看到它。切換到服務器端分頁後顯示網格數據

這裏是電網建設:

$v.KendoGrid.makeGrid(gridName, { 
    columns: [ 
    { field: 'IdentifierCode', title: 'User Name' }, 
    { field: 'CompanyName', title: 'Company' }, 
    { field: 'Email', title: 'Email' } 
    ], 
    dataSource: { 
    pageSize: 2, 
    schema: { 
     data: 'Data', // records are returned in the data section of the response 
     model: { 
     id: 'Id', 
     fields: { 
      IdentifierCode: { type: 'string' }, 
      CompanyName: { type: 'string' }, 
      Email: { type: 'string' } 
     } 
     }, 
     total: 'Total' // total number of records are in the total section of the response 
    }, 
    serverPaging: true, 
    transport: { 
     read: { 
     url: window.urlConfigs.root + "Security/UserAccount/PagedListing" 
     dataType: "json", 
     type: "GET" 
     } 
    } 
    }, 
    editable: false, 
    filterable: true, 
    height: 464, 
    pageable: true, 
    scrollable: true, 
    sortable: true 
}); 

這裏是MVC控制器方法:

public ActionResult PagedListing(int pageSize, int skip) 
{ 
    var entities = ReadRepo.All(); 
    var total = entities.Count(); 
    var data = entities.Skip(skip).Take(pageSize).Select(MapEntityToViewModel).ToList(); 

    return Json(new { Total = total, Data = data }, JsonRequestBehavior.AllowGet); 
} 

這裏是我回來在網絡上的呼叫數據:

{"Total":8,"Data":[{"Id":"928f0bb2-608b-417b-bf6e-e5c58f85fec2","IdentifierCode":"admin","FirstName":"Administrator","MiddleName":"of","MiddleNameHuman":"of","LastName":"GasStream","DisplayName":"Administrator of GasStream","Email":"[email protected]","IsExternal":false,"UserTypeHuman":"Internal","CompanyId":"75bb05a4-1ec2-4042-aeba-a229008aca9f","CompanyName":"Entessa Pipeline & Terminal, MLP","CompanyIdentifierCode":"SHA","Password":"wFg/a/NEU6WM8z4YZBUduitIDROfeFz/+Za6leAHnBE=","PasswordChanged":false,"ForceNewPasswordFlag":false,"Settings":[],"RoleGroups":[]},{"Id":"47c29025-cfa8-4447-9ab7-a229008ad088","IdentifierCode":"contractcarl","FirstName":"Carl","MiddleName":null,"MiddleNameHuman":"","LastName":"Smithers","DisplayName":"Carl Smithers","Email":"[email protected]","IsExternal":false,"UserTypeHuman":"Internal","CompanyId":"75bb05a4-1ec2-4042-aeba-a229008aca9f","CompanyName":"Entessa Pipeline & Terminal, MLP","CompanyIdentifierCode":"SHA","Password":"IWdH+qDIOucNrre6V4AgI6Exm2Vq5qkIdXdsWfP6jn4=","PasswordChanged":false,"ForceNewPasswordFlag":false,"Settings":[],"RoleGroups":[]}]} 

我懷疑我錯過了一些小小的東西,但在看完這個並嘗試各種可能的解決方法之後,我看不到它,所以我要求一些幫助。我曾經想過,一旦我得到數據從服務器返回小集,事情會變得更簡單。

由於提前,

德魯

+0

您在讀取傳輸部分的'url'後缺少逗號。這裏是一個jsFiddle,它正是你所擁有的,除了讀取傳輸被改變爲使用本地數據:[http://jsfiddle.net/tZecG/3/](http://jsfiddle.net/tZecG/3/) 。我不知道還有什麼可以的。 – Brett

回答

0

我最終找到了答案。 $ v.KendoGrid是一個包裝kendoGrid調用本身的方法,並且在那裏有一些重置,以便在從服務器正確分頁返回時不允許正確解析數據。

我已經重新工作了,所以我可以在$ v.KendoGrid調用中爲我的類型的網格建立必要的參數。

感謝您的幫助,並且雙眼盯着逗號Brett。

Drew