2013-12-19 19 views
0

我有一個模型視圖列表,並且想要在kendo窗口中將此列表設置爲kendo網格數據源。如何在JavaScript中設置列表爲劍道網格數據源?

阿賈克斯

$.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(
    @<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; } 
} 

回答

3

你傳入在錯誤的東西到setDataSource()函數。你應該傳入你創建的dataSource對象。

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

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

的另一種方法將數據加載到網格,而無需創建一個新的數據源對象將做到這一點:

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

你是一個佈雷特:)。我試過$('#GridKatildigiKurslar')。data('kendoGrid')。setDataSource(dataSource);之前被問到問題,但它不起作用。但另一種方式清晰工作。非常感謝你。 – MustafaP