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 に答える