Kendo UI Grid: поддерживается ли инициализация сетки с источником данных с пустым массивом данных?

Хотелось бы узнать, поддерживается ли следующий подход:

  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);
    }
    

который вызовет измененное событие и обновит сетку. Я думаю, что у шаблона наблюдения могут возникнуть проблемы, если источник данных инициализирован пустым массивом.


person Tim    schedule 16.12.2012    source источник


Ответы (1)


Я не совсем понимаю, что вы имеете в виду, говоря о схеме наблюдения. Но сетка может иметь пустой источник данных. Вот демонстрация: http://jsbin.com/izizut/1/edit

Ваша конфигурация сетки неверна. Настройка схемы является частью конфигурации источника данных, а не сетки. Дополнительную информацию можно найти в справочнике по API источника данных.

Также в этом случае нет необходимости подписываться на событие изменения источника данных. Сетка прослушивает его по умолчанию и обновляется автоматически.

person Atanas Korchev    schedule 16.12.2012
comment
спасибо за пример и за информацию об измененной подписке на мероприятие: ...there is no need to subscribe to the change event of the data source in this case. The grid is listening to it by default... - person Tim; 17.12.2012