1

私の剣道データソースの場合、結果のjsonには列「TotalRecords」があり、サーバーのページングが機能するように、この合計を剣道データソースの合計に設定するにはどうすればよいですか。私のコードは以下の通りです:

 var iDataSource = new kendo.data.DataSource({
            transport: {
                read:
                    {
                        url: service_URL + "GetUnconfirmedppointments",
                        datatype: "json",
                        type: "GET"
                    },
                parameterMap: function (options) {
                    return {
                        appointmentNos: Appointment_Number.value,
                        loadNumbers: Load_Number.value,
                        purchaseOrders: Purchase_Orders.value,
                        dateFrom: Date_From.value,
                        dateTo: Date_To.value,
                        warehouse: warehouses.value,
                        carrierId: cr_carrier_id,
                        sortColum: getOrderBy(options.sort),
                        sortDirection: getOrderDir(options.sort),
                        pageSize: options.pageSize,
                        pageNumber: options.page
                    };
                }
            },
            schema: {
                model: {
                    fields: {
                        APP_APPOINTMENT_ID: { type: "number" },
                        APPOINTMENT_DATE: { type: "date" },
                        LO_LOAD_NUMBER: { type: "number" }
                    }
                }
            },
            pageSize: 5,
            total: function (response) {
               return response[0].TotalRecords;
            },
            serverPaging: true,
            serverFiltering: true,
            serverSorting: true
        });

ハードコーディングされた合計レコード数を指定しても、現在の実装は機能しません。このデータソースがグリッドにバインドされている場合、合計カウントは json で返されたレコードの数 (ページサイズ) のみを示します。

4

2 に答える 2

6

あなたの合計はすべてのレコードにあると思いますか?そうでない場合は、できることは...

schema: {
  total: "TotalRecords"
}

理想的には、JSON は次のように構成する必要があります...

{ data:[...], total: 100 }

ただし、そのようにサーバーから送信できない場合は、スキーマを解析できます。合計数がすべてのレコードに添付されている場合は、フィールドを追加してそれを保持し、解析で入力できます。

schema: {
  parse: function(data) {
      // assign top level array to property
      data.data = data;
      // assign the count off one of the fields to a new total field
      data.total = data.data[0].TotalRecords;

      return data;
  }
}
于 2013-02-06T22:22:01.950 に答える
2

私の応答には各レコードの合計レコード フィールドがあるため、以下をスキーマに移動して修正しました。

total: function (response) { return response[0].TotalRecords; }
于 2013-02-07T19:56:32.127 に答える