0

新しいプロジェクトでは、グリッドデータを表示するための非常に優れたツールであるSlickGridを使用しています。グリッドのコンテンツをフィルタリングする検索ボックスをグリッドの上に実装しようとしています。グリッドでDataViewを使用しており、関数「setFilter」および「setFilterArgs」を使用して、DataViewにフィルターを実装できます。

また、カスタムフォーマッターを使用して、一部のフィールドのセルのコンテンツをフォーマットします。たとえば、国はデータオブジェクト(たとえば「NL」)の国コードですが、グリッド列定義でフォーマッタを使用して、変換された値「オランダ」として表示します。また、日付はこのようにフォーマットされます。

問題は次のとおりです。DataViewからアクセスできるため、データオブジェクトのコンテンツのみをフィルタリングできますが、グリッドによってセルに表示されるフォーマットされたコンテンツをフィルタリングする必要があります。これを速くて良い方法で行う方法はありますか?

4

1 に答える 1

3

CPU 効率の良い方法: フォーマッタ関数で、return ステートメントの直前に割り当てます。

dataContext.countryName = myFullCountryName;

これにより、アイテム/行に新しいプロパティが追加されます。次に、列を並べ替えるときに、country代わりに countryName を参照するだけです。

メモリ効率の良い方法は、並べ替え関数で比較を行う前に、フォーマッタ関数を介して各国の値を渡すことです。

于 2012-11-27T15:55:52.557 に答える