如何在javascript中将列表设置为kendo网格数据源?

我有一个模型视图列表,并希望在kendo窗口中将此列表设置为kendo网格数据源。

阿贾克斯

$.ajax({ url: '@Url.Action("KatildigiKurslar", "Tanim")', type: 'POST', dataType: "json", data: { kursiyerId: kursiyerId}, success: function (result) { var kurslar =result.kurslar; //----------I've tried like this but not working ----------------// var dataSource = new kendo.data.DataSource({ data:kurslar }); $('#GridKatildigiKurslar').data("kendoGrid").setDataSource(kurslar); $("#KatildigiKurslar").data("kendoWindow").open(); }, async: false }); 

剑道窗/网格

 @(Html.Kendo().Window() .Name("KatildigiKurslar") .Title("Katıldığı Kurslar") .Draggable() .Content( @ @(Html.Kendo().Grid() .Name("GridKatildigiKurslar") .Columns(columns => { columns.Bound(p => p.KursEgitmenAdi).Width(100); columns.Bound(p => p.KursDonemi).Width(200); columns.Bound(p => p.BaslangicTarihi).Width(200); }) .Pageable() .AutoBind(false) .DataSource(dataSource => dataSource .Ajax() .PageSize(7) ) ) ) .Visible(false) .Resizable() .Actions(actions => actions.Minimize().Maximize().Close()) ) 

模型视图

 public class KursiyerSinifViewModel { public string KursEgitmenAdi { get; set; } public string KursDonemi{ get; set; } public string BaslangicTarihi{ get; set; } } 

您正在向setDataSource()函数传递错误的内容。 您应该传入您创建的dataSource对象。

 var dataSource = new kendo.data.DataSource({ data: kurslar }); $('#GridKatildigiKurslar').data('kendoGrid').setDataSource(dataSource); // not kurslar 

将数据加载到网格中而不必创建新数据源对象的另一种方法是:

 $('#GridKatildigiKurslar').data('kendoGrid').dataSource.data(kurslar);