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,Contains,日期和音量列上有EqualNotEqual GreaterThan LessThan GreaterThanOrEqual和LessThanOrEqual。精彩的这种定制非常棒。

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

我看到我可以在grid.local-en.js(或任何正确的语言环境)中全局修改这些内容,但这是全局级别的。我希望日期和音量列具有特定于这些列的字符串。

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

您没有编写使用哪个版本的jqGrid,所以我假设您使用的是最后一个4.0.0版本的jqcGrid。

couse没有jqGrid选项,可以让搜索对话框像你想要的那样。我觉得你的问题很有趣,所以我扩展了我的这个和这个旧答案的代码,这样它就可以满足你的需要。

演示使用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属性。此外,在这个演示中,就像之前的演示一样,我不允许删除第一个搜索规则,并将焦点设置在最后一个输入字段上。

我建议您在trirand论坛中放置新的功能请求,以使该功能默认在jqGrid中实现。

最新更新