NOT值为

时间:2016-07-27 09:15:06

标签: c# .net jqgrid

我目前定义了这个jqGrid列搜索选项;

colDefs.Append(",stype: 'select', searchoptions: { sopt: ['eq', 'ne'], value: ':All;99:Yes;1:No'}");

因此,它正确过滤到值为99的搜索选项'是'而且,对于' No'。

的值为1

如何使其过滤到99以外的任何其他内容(即NOT 99)以获取' No'而不只是1?

我尝试了一些猜测,比如...;!99:没有'}"但他们只是错误。

用户无法或不需要在Equals / Not equals或任何其他过滤选项之间进行选择。他们只能从三个固定选项中进行选择,'全部'是'是'或者'否'。

目前'所有'显示所有记录,'是'仅显示有价值的记录' 99' (数据是字符串),'否'仅显示值为' 1'。

的记录

我的目标'所有'应该显示所有记录,'是'应该只显示有价值的记录' 99'和'不'应显示值不是99&99;的所有记录。 我可以定义' searchoptions'这样做?

Cell数据类型为String。

定义的FilterToolbar
   $('#' + this.instance + '_GridContainer_grid').jqGrid('filterToolbar', {
    stringResult: true,
    defaultSearch: 'cn'
});

过滤是本地的,而不是服务器。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您filterToolbar 没有 searchOperators: true选项,则将使用来自sopt的第一次搜索操作。您可以将sopt: ['eq', 'ne']更改为sopt: ['ne']或更改为sopt: ['ne', 'eq'],以便在列中应用“不等于”操作。

这种设置的原因如下。过滤器工具栏和搜索对话框将使用searchoptions(请参阅herehere)。如果列中不存在searchoptions.sopt,则搜索操作defaultSearch(用作filterToolbar的选项)将应用于所有列。如果你使用select值1,2,... 11,12,13,...那么搜索值'1'将显示值为1,11,12,13的行。因为所有值都包含子串'1'。因此,如果使用searchoptions.sopt,则通常始终定义stype: 'select'