0

我想知道是否支持以下方法:

  1. 定义网格模式和列并使用空数组进行初始化:

    var dataSource = new kendo.data.DataSource({
        data: []    // intentionally empty!
    });
    
     $("#grid").kendoGrid({
       dataSource: dataSource, 
      schema: {
               model: {
                            fields: {
    
                                arrive: {type: "number"},
                                depart: {type: "number"},                                   
                                src: {type: "string"}
                            }
                        } 
            },
                 columns: [
    
            { field: "arrive", groupable: false, title: "arrive",width:88},
            { field: "depart", groupable: false, title: "depart",width:88},               
            { field: "src", groupable: true, title: "src", width:44 }
        ]
    
          etcetera
    
      });
    
  2. 然后,在配置/初始化之后,绑定到 Change 事件:

    var grid = $('#grid').data('kendoGrid');
        grid.dataSource.bind("change", function (e) {
            dataChanged();
        });
    
    
       function dataChanged() {
         var grid = $("#grid").data("kendoGrid");
         grid.refresh();
       }
    
  3. 然后这样做:

     function populateDatasource(event, data) {
         var grid = $('#grid').data('kendoGrid');     
          var parsedData = $.parseJSON(data);   
         grid.dataSource.data(parsedData);
    }
    

这将触发更改的事件并刷新网格。我认为如果 dataSource 使用空数组初始化,则观察模式可能会遇到一些问题。

4

1 回答 1

1

我不确定你所说的观察模式是什么意思。但是网格可以有一个空的数据源。这是一个演示:http: //jsbin.com/izizut/1/edit

您的网格配置错误。架构设置是数据源配置的一部分,而不是网格。您可以在数据源API 参考中找到更多信息。

在这种情况下也不需要订阅数据源的更改事件。默认情况下,网格正在监听它,并将自动刷新。

于 2012-12-16T16:27:38.903 回答