Ich benutze ein Kendo-Grid von Telerik und läuft auf ein Problem. Ich möchte die Datenserverseite mit einem Datumsfilter filtern. So fand ich ein laufendes Beispiel, das funktioniert, wie ich erwarten:Kendo Grid Date Filter wird nicht mit meinen JSON-Daten arbeiten
<div id="grid"></div>
<script>
$(document).ready(function() {
$("#grid").kendoGrid({
dataSource: {
type: "odata",
transport: {
read: "http://demos.telerik.com/kendo-ui/service/Northwind.svc/Orders"
},
schema: {
model: {
fields: {
OrderDate: { type: "date" }
}
}
},
pageSize: 20,
serverPaging: true,
serverFiltering: true,
serverSorting: true
},
height: 550,
filterable: true,
sortable: true,
pageable: true,
columns: [
{
field: "OrderDate",
title: "Order Date",
format: "{0:MMM dd, yyyy}",
parseFormats: "{0:MM/dd/yyyy}",
headerTemplate: '<label for="check-all"><b>Start Date</b></label>',
headerAttributes: { style: "text-align: center;" },
attributes: { style: "text-align:center !important;padding-right: 25px;" },
filterable: {
ui: function (element) {
element.kendoDatePicker({
format: "MMM dd, yyyy"
});
}
}
}
]
});
});
Nun änderte ich dieses Beispiel für meine Bedürfnisse. Ich verwende einen REST-API-Aufruf, der JSON-Daten zurückgibt. Die Daten werden im Raster angezeigt, aber wenn ich versuche, einen Filter anzuwenden, gehen die Daten verloren. Es scheint, dass etwas mit dem Datumsformat nicht stimmt, aber ich weiß nicht, was der richtige Weg ist. Hier ist mein Code:
<div id="grid"></div>
<script>
$(document).ready(function() {
$("#grid").kendoGrid({
dataSource: {
transport: {
read: {
url: "http://localhost/FPT2015.WebApp/api/BereitschaftszeitStammdaten",
dataType: "json"
}
},
schema: {
data: "d.results",
model: {
fields: {
stundeVon: { type: "date" }
}
}
, parse: function (data) {
$.each(data.d.results, function (i, val) {
val.stundeVon = new Date(val.stundeVon);
});
return data;
}
},
pageSize: 20,
serverPaging: true,
serverFiltering: true,
serverSorting: true
},
height: 550,
filterable: true,
sortable: true,
pageable: true,
columns: [
{
field: "stundeVon",
title: "Order Date",
format: "{0:MMM dd, yyyy}",
parseFormats: "{0:MM/dd/yyyy}",
headerTemplate: '<label for="check-all"><b>Start Date</b></label>',
headerAttributes: { style: "text-align: center;" },
attributes: { style: "text-align:center !important;padding-right: 25px;" },
filterable: {
ui: function (element) {
element.kendoDatePicker({
format: "MMM dd, yyyy"
});
}
}
}
]
});
});
Und das ist die JSON, dass meine API zurückkehrt:
{
"d":{
"__count":6,
"results":[
{
"bereitschaftszeitId":2,
"bereitschaftlerId":1,
"stundeVon":"2015-11-25T06:00:00+01:00",
"stundeBis":"2015-12-07T07:00:00+01:00"
},
{
"bereitschaftszeitId":5,
"bereitschaftlerId":2,
"stundeVon":"2015-12-07T06:00:00+01:00",
"stundeBis":"2015-12-14T06:00:00+01:00"
},
{
"bereitschaftszeitId":7,
"bereitschaftlerId":1,
"stundeVon":"2016-01-10T10:00:00+01:00",
"stundeBis":"2016-01-17T10:00:00+01:00"
},
{
"bereitschaftszeitId":12,
"bereitschaftlerId":13,
"stundeVon":"2016-01-03T10:00:00+01:00",
"stundeBis":"2016-01-10T10:00:00+01:00"
},
{
"bereitschaftszeitId":15,
"bereitschaftlerId":2,
"stundeVon":"2016-01-18T06:00:00+01:00",
"stundeBis":"2016-02-19T06:00:00+01:00"
},
{
"bereitschaftszeitId":44,
"bereitschaftlerId":2,
"stundeVon":"2016-03-11T12:06:21.207+01:00",
"stundeBis":"2017-03-11T00:06:00+01:00"
}
]
}
}
Sieht jemand, was ich falsch hier? Ich würde mich freuen, wenn du mir helfen kannst.
Danke für den Kommentar, ich werde das überprüfen! – MrLorKa