1

Kendo Grid UI でサーバー サイド ページングを使用するようにアプリケーションを変換しています。serverPaging を true に切り替える前は、グリッド コンテンツを適切に表示し、クライアント側でページングしていました。ただし、serverPaging をオンにすると、データが表示されなくなりました。ネットワーク呼び出しを確認したところ、期待どおりにデータが返されています (合計 8​​ つのレコードのうち 2 つのレコードのみ) が、グリッドには表示されません。

グリッド構造は次のとおりです。

$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":[]}]}

何か小さなことを見逃していると思いますが、これを見てあらゆる種類の可能な回避策を試した後、それが見えないので、助けを求めています. サーバーから小さなセットを返すデータを取得したら、物事はより簡単になると思いました。

前もって感謝します、

ドリュー

4

1 に答える 1

0

私は答えを見つけることになりました。$v.KendoGrid は、kendoGrid 呼び出し自体をラップするメソッドであり、サーバーから適切にページングされて戻ってきたときにデータが適切に解析されないように、何かがリセットされていました。

それ以来、私のタイプのグリッドだけに $v.KendoGrid 呼び出しで必要なパラメーターを確立できるように、混乱を作り直しました。

助けてくれてありがとう、そしてコンマを捉える目、ブレット。

ドリュー

于 2013-09-03T19:44:53.763 に答える