我熟悉可以添加到每个列过滤器旁边左侧下拉列表选项中的自定义操作。
我所追求的是添加两种新类型的自定义运算符进行过滤: 1.空 2.不是空的
虽然我知道如何实现这一点,但我在Free JqGrid中遇到了此类流程的UX问题。这是因为这两个自定义运算符在选择后不需要用户输入任何内容,因此用户在选择具有空值的运算符后必须单击“输入” - 非常混乱。
我想知道的是如何考虑我已经定义了一个新的自定义运算符:
谢谢,
塔尔。
答案 0 :(得分:3)
感谢您指出定义自定义一元操作的问题。我提交了the changes代码的free jqGrid,以允许在新选项customUnaryOperations
中指定自定义一元操作。
The demo定义了两个自定义过滤操作:" em" ("是空的")和" nm" ("不是空的")并使用" Amount"中的操作。和"笔记"列。专栏"注释"另外使用标准(预定义)" nu" ("为空")和" nn" ("不是空")操作。列"金额"用途
searchoptions: {sopt: ["eq", "ne", "em", "nm"]}
和列"注意"用途
searchoptions: {sopt: ["cn", "bw", "ew", "eq", "bn", "nc", "en", "nu", "nn", "em", "nm"]}
此外,该演示使用customSortOperations
和新customUnaryOperations
:
customUnaryOperations: ["em", "nm"],
customSortOperations: {
em: {
operand: "=''",
text: "is empty",
filter: function (options) {
var v = options.item[options.cmName];
if (v === undefined || v === "") {
return true;
}
}
},
nm: {
operand: "!=''",
text: "isn't empty",
filter: function (options) {
var v = options.item[options.cmName];
if (v !== undefined && v !== "") {
return true;
}
}
}
}