对于我的Kendo数据源,生成的json有一列“ TotalRecords”,我如何将此总数设置为Kendo数据源的总数,以便服务器分页可以正常工作。我的代码如下:

 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返回的记录数,即页面大小。

最佳答案

我认为您的总数在每条记录上?如果不是,您可以做...

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;
  }
}

关于jquery - kendo数据源服务器分页和JSON中的Total,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14739394/

10-11 23:58
查看更多