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

时间:2013-12-19 14:48:37

标签: javascript jquery asp.net-mvc kendo-ui kendo-grid

我有一个模型视图列表,想在kendo窗口中将此列表设置为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
    });

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())  
)     

模型视图

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

    public string KursDonemi{ get; set; }

    public string BaslangicTarihi{ get; set; }
}

1 个答案:

答案 0 :(得分:3)

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

var dataSource = new kendo.data.DataSource({
  data: kurslar
});

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

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

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