私は、ユーザーがフィルタリングするテキストを強調表示したときに検索を提供するグリッドを持っています。無料のjqGridでonCellSelectで選択した検索フィルタを取得するにはどうすればよいですか?
onCellSelect
は次のようになります。
onCellSelect: function(row, col, content, event) {
var cm = grid.jqGrid("getGridParam", "colModel");
if (window.getSelection) {
selection = window.getSelection();
} else if (document.selection) {
selection = document.selection.createRange();
}
selectionColumn = cm[col].name;
selection.toString() !== '' && $("#gs_"+selectionColumn).val(selection.toString());
console.log($("a.soptclass[data-colname='"+selectionColumn+"']").attr('data-soper'));
if(selection.toString() != '')
{
grid[0].triggerToolbar();
}
}
今、私は私がカスタマイズされているいくつかの検索演算子を持っているし、グリッドでそれを使用して:
searchoptions:{sopt:["cn",'mc','mn',"eq","ne","lt","le","gt","ge","bw","ew","nc"]}
mc
とmn
がcustomSortOperations
の一部であります。
私が欲しいのは、ユーザーがグリッド内の特定のセル内のテキストを選択したときに、どの検索フィルタが使用されたかを検出したい場合です。たとえば、デフォルトで検索フィルタはcn
です。
$("a.soptclass[data-colname='"+selectionColumn+"']").attr('data-soper')
を、それは私にデフォルトcn
毎回を与える:
私はこれを試してみました。
私は、しかし、むしろ選択された正確な検索演算子を取得するjqgrid方法がある
$("a.soptclass[data-colname='"+selectionColumn+"']").text()
でeq
ためcn
のために私に~
のようなシンボリック名を与えますリンク、==
内のテキストを得ることができますか?すなわちcn
、eq
、ne
、le
など
作業のデモが必要な場合は私が知っていると私は質問を更新しますしてください。
更新日:DEMO。ライン659と660で
は私が言い換えれば$("a.soptclass[data-colname='"+selectionColumn+"']").text()
が、私は、私はまだフルではない、あなたが実装する正確な何の行動を理解しonCellSelect
私はあなたを正しく理解しているかどうかはわかりません。コールバックの中で '$(" a.soptclass [data-colname = '"+ selectionColumn +"'] ")のような式を使用しようとしました。テストケースでいくつかのデモを準備できますか?私があなたがしたいことを正確に理解するなら、私はあなたを助けるでしょう。 – Oleg
@Oleg私はデモ[ここ](http://jsfiddle.net/jbksad8e/)を用意しました。時間があるときに見てください。 –