如果我使用函数调用数据,Kendo Grid不会显示数据

时间:2014-05-29 17:59:52

标签: kendo-ui kendo-grid

如果我使用下面注释掉的第二个读数,则网格显示我的数据。如果我使用第一个,我可以看到我的数据在Fiddler中返回,但网格不显示它。

var $nisGridDataSource = new kendo.data.DataSource({
    transport: {
        read: function () {
            DataService.newIssuesStatistics();
        }
        //read: {
            //url: "/api/PoolApi/NewIssuesSecurities"
        //}
    }

...

这是成功调用的DataService.newIssuesStatistics方法:

    newIssuesSecurities = function () {

    return $.ajax({
        url: "/api/PoolApi/NewIssuesSecurities"
    });

有谁能说明为什么会这样?

2 个答案:

答案 0 :(得分:1)

您必须告诉Kendo UI DataSource它已收到数据。你的函数Dataservice.newIssuesStatistics()是如何实现的?它会回复承诺吗?让我们说它的确如此,那么你就是这样做的:

var dataSource = new kendo.data.DataSource({
  transport: {
    read: function(options) {
      Dataservice.newIssuesStatistics().done(function(stats) {
        options.success(stats);
      });
    }
  }
});

答案 1 :(得分:0)

我最终得到了这个。谢谢布雷特。我现在看到的是一个完整的代码示例。再次感谢Brett!

var $nisGridDataSource = new kendo.data.DataSource({
    transport: {
        read: function (options) {
            DataService.newIssuesStatistics()
                .done(function (result) {
                    // notify the data source that the request succeeded
                    options.success(result);
                })
                .fail(function (result) {
                    // notify the data source that the request failed
                    options.error(result);
                });
        }
    }