2012-05-11 28 views
0

私はSlickGridを使ってWebアプリケーションを開発しています。複数のSlickGridで汎用フォーマッタを使用するにはどうすればよいですか?

私たちのアプリケーションは、さまざまなタブ/ページに多くのグリッドを持っています。そのため、別のグリッドに対して何度も同じ機能を何度も書いていないように、いくつかのコードをリファクタリングできますか?

例:私たちは複数のツリーグリッドを持っているので、私は(ツリー構造を実装するためのフォーマッタを各グリッドに対して同一である)カスタムフォーマッタを必要 : 関数PercentCompleteFormatter(行、セル、値、columnDef、DataContextの)

グリッドやデータビューを引数として渡すことができないと仮定すると(上記の署名をすべてのカスタムフォーマッタに使用する必要があると仮定して)、私は基本的にグリッドを作成する各コードブロック内に同じフォーマッタコードを持たなければなりません。

「汎用」フォーマッタを作成してすべてのグリッドに適用する方法はありますか?

ソート、フィルタリングなどにも同じ質問が当てはまりますが、私は上記の説明が私が求めようとしていることをカバーすることを願っています。

ありがとうございます!

答えて

5

jQueryの.proxy()ヘルパーなどを使用して、関数を特定のコンテキストにバインドできます。例えば

function MyFormatter(row, cell, value) { 
    var grid = this; // the grid will be the executing scope 
    // ... 
} 

var myFormatterForGridA = $.proxy(MyFormatter, gridA); 
var myFormatterForGridB = $.proxy(MyFormatter, gridB); 
+1

は私のために完璧に動作している、どうもありがとうございます! (これを投票しなかったことに対する謝罪、私の担当者がまだそれを許可するのに十分なほど高くないサイトへの新規参入)。 – user1389920

関連する問題