Domanda

take a look at these 2 fiddles

http://jsfiddle.net/uFcHK/ (v2013.1.319)

http://jsfiddle.net/rcvY3/ (v2013.2.716)

The code is identical.

var grid = $("#grid").kendoGrid({
    dataSource: {
        type: "odata",
        transport: {
            read: "http://demos.kendoui.com/service/Northwind.svc/Products"
        },
        pageSize: 15,
        serverPaging: true,
        serverSorting: true,
        serverFiltering: true
    },

    height: 450,
    sortable: true,
    pageable: true,
    editable: true,
    toolbar: ["create"],
    filterable: false,
    columns: ["ProductID", "ProductName", "UnitPrice"]
});

(you can ignore the the broken nav panel, I don't see this in prod)

The problem is the record count.

If you click on "Add new record" you will see the record count do a text add instead of number add. This is crazy, no idea how kendo let this slide for half a year+

È stato utile?

Soluzione

The problem is with OData that return total as string since this is received as string.

In previous releases of code the increment was done as total++ but now it is being added a number allowing to add more than one record in one single operation. The problem is that if you do string + number you actually get the number concatenated to the string.

The easiest way of solving it is providing a total function that just converts the string to number something as simple as defining in the DataSource:

dataSource: {
    type           : "odata",
    transport      : {
        read: "http://demos.kendoui.com/service/Northwind.svc/Products"
    },
    schema : {
        total : function (data) {
            // Convert __count to number
            return +data.d.__count;
        }
    },
    pageSize       : 15,
    serverPaging   : true,
    serverSorting  : true,
    serverFiltering: true
},
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top