【发布时间】:2016-07-26 23:53:22
【问题描述】:
我有一个网格,当用户突出显示他们想要过滤的文本时,我在其中提供搜索。
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。
我可以在链接中获取文本,它会给我一个符号名称,例如 ~ 代表 cn,== 代表 eq
$("a.soptclass[data-colname='"+selectionColumn+"']").text()
但是,有没有一种 jqgrid 方法可以选择准确的搜索运算符?即cn,eq,ne,le等
如果需要工作演示,请告诉我,我会更新问题。
更新: DEMO.
在第 659 行和第 660 行,我正在使用此回调 $("a.soptclass[data-colname='"+selectionColumn+"']").text()
换句话说,我希望在onCellSelect 中选择搜索运算符
【问题讨论】:
-
我不确定我是否理解正确。在哪个回调中,您尝试使用
$("a.soptclass[data-colname='"+selectionColumn+"']").text()之类的表达式?你能用测试用例准备一些演示吗?如果我能完全理解您想要实现的内容,我会为您提供帮助。 -
@Oleg 我准备了一个演示here。有时间请看一下。
标签: javascript jquery jqgrid free-jqgrid