J'ai une liste modelview et je veux définir cette liste comme source de données de grille kendo dans une fenêtre kendo.
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
});
Fenêtre / Grille Kendo
@(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())
)
Vue du modèle
public class KursiyerSinifViewModel
{
public string KursEgitmenAdi { get; set; }
public string KursDonemi{ get; set; }
public string BaslangicTarihi{ get; set; }
}
Réponses:
3 pour la réponse № 1Vous passez la mauvaise chose au setDataSource()
une fonction. Vous devez transmettre l'objet dataSource que vous avez créé.
var dataSource = new kendo.data.DataSource({
data: kurslar
});
$("#GridKatildigiKurslar").data("kendoGrid").setDataSource(dataSource); // not kurslar
Une autre façon de charger vos données dans la grille sans avoir à créer un nouvel objet source de données serait de procéder comme suit:
$("#GridKatildigiKurslar").data("kendoGrid").dataSource.data(kurslar);