【问题标题】:Displaying grid data after switching to Server Side paging切换到服务器端分页后显示网格数据
【发布时间】:2013-08-29 16:37:10
【问题描述】:

我正在转换我的应用程序以使用带有 Kendo Grid 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":"admin@example.com","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":"carl@entessa.com","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":[]}]}

我怀疑我错过了一些小东西,但是在查看了这个并尝试了各种可能的解决方法之后,我看不到它,所以我寻求一些帮助。我想一旦我得到数据并从服务器返回小集合,事情就会变得更简单。

提前致谢,

画了

【问题讨论】:

  • 您在读取传输部分的url 后面缺少一个逗号。这是一个 jsFiddle,除了读取传输更改为使用本地数据之外,这正是您所拥有的:http://jsfiddle.net/tZecG/3/。我不确定它还能是什么。

标签: grid kendo-ui paging


【解决方案1】:

我最终找到了答案。 $v.KendoGrid 是一种包装 kendoGrid 调用本身的方法,并且其中的某些内容被重置,当数据从服务器正确分页返回时,不允许正确解析数据。

我已经重新处理了这个混乱,所以我可以在 $v.KendoGrid 调用中为我的网格类型建立必要的参数。

感谢您的帮助,以及捕捉逗号的眼睛,Brett。

画了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-08
    • 2023-03-10
    • 2013-11-11
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    相关资源
    最近更新 更多