2011-06-03 104 views
1

所以,在我的ASP.NET MVC 3应用程序中,我已经有了jqGrids的页面。我已经定制了搜索行动在每列的基础,像这样:我可以根据每列自定义jqGrid搜索选项上的文本吗?

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']} } 

] 

这会给我,在这个例子中,平等,NotEqual,包含上的名字,和平等,NotEqual,GREATERTHAN, LessThan,GreaterThanOrEqual和LessThanOrEqual在日期和卷列上。精彩。这种定制非常棒。

我特别想要做的是自定义显示在这些列的搜索操作下拉菜单中的字符串。例如,对于所述InitalDate柱,我想要“GT”代替“大”(更有意义给用户)“后”,以显示和类似“或之前”而不是“少或相等“。

我看到,我可以在grid.locale-en.js全球范围内修改这些(或者其他场所是正确的),但是这是在全球范围内。我希望日期和音量列具有特定于这些列的字符串。

任何方式来做到这一点?也许我错过了关于如何实现这一目标的文档。

回答

1

你不写你使用哪个版本的jqGrid,所以我想你使用的是最后的4.0.0版本的jqGrid。

没有jqGrid选项可以使搜索对话框如你所想。我发现你的问题很有趣,所以我扩展了我的thisthis旧答案的代码,以便它能满足你的需要。

The demo使用的jqGrid其中 'invdate' 列( '日期' 栏)具有与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实现该功能。

+0

是的,它是4.0。我已经提交了功能请求,并会尝试您的扩展。感谢您的回应! – itsmatt 2011-06-04 20:23:57

+0

@itsmatt:不客气! – Oleg 2011-06-04 21:13:33

相关问题