是的,您可以使用columns 搜索选项进行自定义,这通常是来自colModel 的元素(列)的副本。使用columns 选项一可以更改列的顺序。一种可以包含具有search: false 属性的列,也可以包含additionalProperties 中的任何属性,可以用作隐藏列的替换。
我准备了the demo,它演示了实现。该演示使用的输入数据看起来像
{ id: "50", invdate: "2015-10-31", name: "test5", note: "note5",
amount: "300.00", tax: "20.00", closed: false, ship_via: "FE", total: "320.00" }
我用列定义了colModel,这些列对应于所有输入属性,但id 用于分配rowids 除外。我在tax 列中包含了属性search: false,默认情况下将其排除在搜索/过滤之外。另外我将additionalProperties定义为
additionalProperties: [
{ name: "id", sorttype: "integer" }
]
它允许按属性id 进行排序和搜索。 additionalProperties 的项目可以是以下两种形式中的一种:像 "id" 这样的字符串或像 colModel 这样具有相同格式的对象。在使用loadonce: true 选项的情况下,选项additionalProperties 非常实用。它允许在本地数据中包含来自输入数据(从服务器返回的数据)的任何附加属性。属性的值可以有任何类型。例如,您可以向服务器返回任何帮助数据,如子网格数据、组合键的值等。在使用additionalProperties: ["id"] 或以上值additionalProperties: [ { name: "id", sorttype: "integer" }] 之后,我们将能够按id 排序(按使用sortname: "id")或按id 搜索。
为了自定义搜索对话框,我使用了搜索选项
columns: [
{ name: "closed", label: "Closed",
stype: "select", searchoptions: { sopt: ["eq", "ne"], value: ":Any;true:Yes;false:No" } },
{ name: "id", label: "Id", sorttype: "integer",
searchoptions: { sopt: ["eq", "ne", "lt", "le", "gt", "ge"] }},
{ name: "name", label: "Client name",
searchoptions: { sopt: ["cn", "bw", "ew", "eq", "bn", "nc", "en"] } },
{ name: "amount", label: "Amount", sorttype: "integer",
searchoptions: { sopt: ["eq", "ne", "lt", "le", "gt", "ge"] } },
{ name: "tax", formatter: "integer", sorttype: "integer",
searchoptions: { sopt: ["eq", "ne", "lt", "le", "gt", "ge"] } },
{ name: "ship_via", label: "Shipped via",
stype: "select", searchoptions: { sopt: ["eq", "ne"], value: ":Any;FE:FedEx;TN:TNT;IN:IN" } },
{ name: "note" }
]
其中包括来自colModel 的一些列。我设置label 来指定搜索字段的自定义名称。您可以看到列invdate 未包括在内,但不可搜索列tax 和附加属性id 包括在内。
当前将在columns 项目中使用的属性是:name、label、stype、searchoptions、sorttype。 formatter 和 formatoptions 将仅在 sorttype: "date" 或 sorttype: "datetime" 和 formatter: "date" 的情况下使用。在formatoptions 的srcformat 和newformat 的情况下,将在搜索/过滤期间使用。因为我们没有在columns 中包含日期列,所以columns 中不需要formatter 和formatoptions。
您可以测试演示以查看搜索对话框是否按预期工作。搜索对话框如下图所示