我可以按列自定义jqGrid搜索选项上的文本吗?

时间:2011-06-03 17:03:45

标签: asp.net-mvc jqgrid

所以,在我的ASP.NET MVC 3应用程序中,我已经有了jqGrids页面。我已按照每列自定义搜索操作:

colModel: [
   { name: 'IceCreamName', index: 'IceCreamName', align: 'left',
     searchoptions: {sopt: ['eq', 'ne', 'cn']} },
.
.
.
   { name: 'InitialDate', index: 'InitialDate', align: 'left',
     searchoptions: {sopt: ['eq', 'ne', 'gt', 'lt', 'ge', 'le']} },
   { name: 'Volume', index: 'Volume', align: 'left',
     searchoptions: {sopt: ['eq', 'ne', 'gt', 'lt', 'ge', 'le']} }

]

对于这个例子,这将给我,Equal,NotEqual,包含名称,以及日期和体积列上的Equal,NotEqual,GreaterThan,LessThan,GreaterThanOrEqual和LessThanOrEqual。精彩。这种定制很棒。

我特别想做的是自定义这些列的搜索操作下拉列表中显示的字符串。例如,对于InitalDate列,我希望'gt'在“之后显示”而不是“更大”(对用户更有意义)以及“on on或在“而不是”少于或等于“之前。

我看到我可以在grid.locale-en.js中全局修改它们(或者任何区域设置是正确的),但这是全局级别的。我希望日期和卷列具有特定于这些列的字符串。

有什么办法吗?也许我在文档中遗漏了一些如何实现这一点。

1 个答案:

答案 0 :(得分:1)

你没有写过你使用的jqGrid版本,所以我想你使用jqGrid的最后一个4.0.0版本。

没有couse的jqGrid选项可以让你想要的搜索对话框。我觉得你的问题非常有趣,所以我扩展了我的thisthis旧答案的代码,以便它能够满足您的需求。

The demo使用jqGrid,其中'invdate'列('Date'列)具有searchoptions以下内容:

searchoptions:{sopt: ['eq', 'ne', 'gt', 'lt', 'ge', 'le'],
               optDescriptions: {eq:'my eq', gt:'after', le:'on or before'}}

optDescriptions是我的扩展名。我使用搜索对话框的onInitializeSearch方法覆盖过滤器对话框的reDrawonchange方法,以便使用新的optDescriptions属性。此外,在演示中,与之前的演示一样,我不允许删除第一个搜索规则并将焦点设置在最后一个输入字段上。

我建议您在the trirand forum中添加新的功能请求,以使该功能在默认情况下在jqGrid中实现。