or
I'm unable to load any data from my server into a grid that I'm trying to setup for simple paging without resorting to using the solution posted in the Kendo Grid Forum that uses a jquery ajax request to directly populate the "data" member directly of the kendo.data.DataSource. I am returning a simple json response that contains an array and a count to support paging (for example):
{"artists":[{"ID":4471,"Name":"10 Years","Gender":"Male","Category":"Pop/Rock"},{"ID":4391,"Name":"10,000 Maniacs","Gender":"Female","Category":"Pop/Rock"},{"ID":15,"Name":"10cc","Gender":"Male","Category":"Pop/Rock"},"count":2004}This is my 1st cut at a datasource, and I've verified the server gets called and returns the json as above, but nothing displays in the grid:
var artistSource = new kendo.data.DataSource({ transport: { read: { url: "http://localhost:53596/api/Artists?format=json", dataType: "jsonp" }, schema: { data: "artists", total: "count", model: { fields: { ID: { type: "number"}, Name: { type: "string"}, Gender: { type: "string"}, Category: { type: "string"} } } }, page: 1, pageSize: 50, serverPaging: true, serverFiltering: true, serverSorting: true }});Following the workaround above, this datasource below works. From what I can tell, I'm following the examples, but I'm not able to get the datasource populated properly, and I'd really appreciate any help!
// This is the ajax call that is used to populate the data// member in the dataSource as described in the workaround in the forums: function GetArtists() { var _resData; $.ajax({ type: 'GET', url: 'http://localhost:53596/api/Artists?format=json', dataType: 'json', success: function (data) { _resData = data.artists; }, data: {}, async: false }); return _resData;}// This datasource populates the data array via a jquery ajax call,// bypassing the configuration as done in the original datasource.var artistSource2 = new kendo.data.DataSource({ data: GetArtists(), schema: { model: { fields: { ID: { type: "number" }, Name: { type: "string" }, Gender: { type: "string" }, Category: { type: "string" } } } } }); // If I use artistSource2 (the workaround), the grid gets populated, // but if I use artistSource, nothing shows up in the grid. $('#Artists').kendoGrid({ dataSource: artistSource2, height: 600, columns: [{ field: "ID" }, { field: "Name" }, { field: "Gender" }, { field: "Category"}], pageable: true });
dsDetail = new kendo.data.DataSource({ schema: { type: "json", model: { id: "id", fields: { c_pmprj: { validation: { required: true }}, c_pmchart: { validation: { required: true }}, dt: {/*type: "date",*/ validation: { required: true } }, slip_nro: {validation: { required: true }}, defi: { type: "string" }, amn: { type: "number", validation: { required: true, min: 1} }, vat01: {type: "number"}, vat08: {type: "number"}, vat18: {type: "number"}, c_zadcity: {type: "string"}, id: {type: "number"} } } }, aggregate: [{ field: "amn", aggregate: "sum" }], change: function (e) { // }}); gridDetail = $("#grid_pmexpense").kendoGrid({ dataSource: dsDetail, //height: 250, //filterable: true, scrollable: false, pageable: false, //selectable: 'row', sortable: true, editable: true, navigatable: true, columns : [ {field: "c_pmprj", title: "Proje", width: "120px", editor: prjEditor}, {field: "c_pmchart", title: "Masraf", width: "300px", editor: chartEditor}, {field: "dt", title: "Belge Tar.", width: "120px", editor:dateEditor /*format: "{0:dd.MM.yyyy}"*/}, {field: "slip_nro", title: "Belge No", width: "120px"}, {field: "defi", title: "Açıklama", width: "220px", editor: noteEditor}, {field: "amn", title: "Top.Tutar", width: "120px", template: '<span style="float:right">#= amn #</span>'}, {field: "vat01", title: "KDV %1", width: "100px", template: '<span style="float:right">#= vat01 #</span>'}, {field: "vat08", title: "KDV %8", width: "100px", template: '<span style="float:right">#= vat08 #</span>'}, {field: "vat18", title: "KDV %18", width: "100px", template: '<span style="float:right">#= vat18 #</span>'}, { field: "id", title: "İşlemler", template: detailGridActionTemplate, width: "130px"} ], change : function(e) { // }, save: function (e) { $("#amn_tot").data("kendoNumericTextBox").value(this.dataSource.aggregates().amn.sum); }, saveChanges: function(e) { //alert('save'); }}); this.dataSource.aggregates().amn.sum call always return initial summed up value... How do I recalculate aggregate value? Am I missing something ?