JSオブジェクトを処理するためのカスタム列フィルターを使用すると助けが必要です。フォーマットされた列のカスタム列フィルター
// convert [{id:string, text:string}...] to string
const optionFormatter: Formatter = (row, cell, value, columnDef, dataContext: any) =>
value ? value.map(o => o.text).join(', ') : '';
slickgridに表示されます。私は、文字列にオブジェクトを粉砕するためのカスタムフォーマッタを使用
[
{ id: "1234", text: "Batman"},
{ id: "2345", text: "Robin"}
]
:
は、私は1つの列の値は、JSオブジェクトですslickgridテーブルを持っていますas
Batman, Robin
私のslickgridオプションは、グリッドメニューを使用し、列フィルタリングを有効にします。
this.gridOptions = {
enableGridMenu: true,
enableFiltering: true,
enableAutoResize: true,
enableColumnReorder: true
};
マイcolumnDefは、この列のフィルタリングを可能にします。
{
id: 'owners',
name: 'Owners',
field: 'owners',
sortable: false,
formatter: optionFormatter,
filterable: true
}
セルの値が文字列であればすべてが動作しますが、セルがオブジェクトである場合、フィルタは機能しません。私はフィルタが事前にフォーマットされた値を検索していると仮定します。
クエリ文字列のJSオブジェクトを検索する方法を知っているカスタムフィルタ関数を列に提供する方法はありますか?たとえば、JSON.stringify(value)を検索するだけでも十分です。
また、this answerは、フォーマッタを使用して書式設定されたテキストをdataContextの異なる文字列プロパティとして格納する方法について説明しています。その場合、フィルタリングするプロパティを列フィールドとは異なるプロパティとして指定するにはどうすればよいでしょうか?
うれしいです。私がここで理解していないことがかなりあります。より多くの援助を得るためには完全な例が必要です。 –