I have a modelview list and want to set this list as kendo grid datasource in a kendo window .
Ajax
$.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
});
Kendo Window / Grid
@(Html.Kendo().Window()
.Name("KatildigiKurslar")
.Title("Katıldığı Kurslar")
.Draggable()
.Content(
@<text>
@(Html.Kendo().Grid<OnlineKursKayit.ViewModels.KursiyerSinifViewModel>()
.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)
)
)
</text>)
.Visible(false)
.Resizable()
.Actions(actions => actions.Minimize().Maximize().Close())
)
Model View
public class KursiyerSinifViewModel
{
public string KursEgitmenAdi { get; set; }
public string KursDonemi{ get; set; }
public string BaslangicTarihi{ get; set; }
}
You are passing in the wrong thing to the
setDataSource()
function. You should pass in the dataSource object you created.An alternate way to load your data into the grid without having to create a new data source object would be to do this: