2016-08-08 18 views
2

Knockout-Kendo.jsライブラリを使用して、剣道グリッドとノックアウトバインディングをバインドしています。私はそれぞれに独自の列のセットが割り当てられた複数のデータソースを読み込むシステムを構築しました。 Knockoutバインドされた剣道グリッドに新しい列コレクションを割り当てることを除いて、私は素晴らしいことをすべて実行しています。ノックアウトバインド剣道UIグリッド列コレクションの更新

私は列を再初期化するいくつかの方法を読んだが、これらのすべてではグリッドを破棄して再作成する必要があります。私はノックアウトバウンドグリッドでこれについてどうやって行くのか分かりません。私は以下のコードを使用しています。

HTML:

<div data-bind="kendoGrid: gridOptions"></div> 

ノックアウト/ JS:

self.SearchResultsself.GridColumns両方観察アレイです。

self.gridOptions = { 
    data: self.SearchResults, 
    columns: self.GridColumns 
}; 

self.SearchResultsを更新すると、グリッドが正しく更新されます。 self.GridColumnsの更新は、グリッドの表示列には影響しません。

上記のリンク先のライブラリで提供されているKnockoutバインディングを使用して列コレクションを更新して表示する方法について、誰かが正しい方向で私を指し示すことができたら、大変感謝しています。

+0

'self.gridOptions'はする必要がありますデータバインディングは更新された時点を知ることができるようになります。メンバーの更新時に、 'self.gridOptions.valueHasMutated()'を呼び出します。私はちょうど物事*は*働くべき方法に基づいています。私はバインディングが実際どのように機能するのかわかりません。 –

答えて

0

だから、私はこれを分かりました。本当にシンプルになっています。

  1. がグリッドへの参照と
  2. が更新self.GridColumns()がにグリッドオプションを設定するオプション
  3. に計算割り当てる現在のグリッドオプションを取得:私がやってしまった何を

    はこれをしました更新オプション

    var grid = $("#grid").data("kendoGrid"); 
        var options = grid.getOptions(); 
        options.columns = self.GridColumns(); 
        grid.setOptions(options); 
    
関連する問題