我们的应用程序有自己的翻译工具,由于 jqGrid 翻译不完整,我们在寻呼机设置时将翻译注入(inject)到 jqGrid 中。
我们正在使用 jqGrid 4.4.4 - 目前无法更新。
这对于几乎所有翻译都适用(请参阅下面示例中的警报文本等)。
但是对于搜索过滤器运算符(请参阅下面的 odata 数组),这根本不起作用。 odata 字符串(“等于”、“不等于”...)不会替换为翻译后的字符串。 如前所述,使用标准 jqGrid 语言文件不是我们的选择。
有人知道如何动态注入(inject)搜索运算符的翻译吗?
jQuery("#displayresponses").jqGrid( 'navGrid', '#pager',
{
add: false,
edit: false,
del: true,
alertcap: sWarningMsg,
alerttext: sSelectRowMsg,
searchtitle : sSearchTitle,
refreshtitle : sRefreshTitle,
deltitle : sDelTitle,
search: true,
refresh: true,
view: false,
position: "left"
},
{}, // edit options
{}, // add options
{
msg : strDeleteAllConfirm,
bSubmit : sDelCaption,
caption : sDelCaption,
bCancel : sCancel,
width : 700
},
{ // Search options
caption : sSearchCaption,
Find : sFind,
multipleSearch: true,
odata : [ sOperator1, sOperator2, sOperator3,
sOperator4, sOperator5, sOperator6,
sOperator7, sOperator8, sOperator9,
sOperator10, sOperator11, sOperator12,
sOperator13, sOperator14 ],
Reset : sReset,
width: 700
}
);
最佳答案
您使用了错误的标签free-jqgrid标记您的问题,这会导致误解。 free-jqgrid使用时应使用标签 free jqGrid存在于版本 4.8.0、...4.13.2 中。
retro版本4.4.4使用$.jgrid.search.odata
作为jqFilter
的参数,而不是后面引入的odata
选项。因此,您必须“即时”更改 $.jgrid.search.odata
。
旧版本 4.4.4 已失效,我强烈建议您升级到当前免费的 jqGrid 4.13.2。您可以直接从 CDN 使用它,就像 wiki 文章中所描述的那样,并且还包含在所有最新发布的免费 jqGrid 版本的自述文件中。如果您确实更喜欢使用 NuGet 包,那么您可以卸载旧的 jQuery.jqGrid打包并安装free-jqGrid相反。
关于javascript - 即时翻译 jqGrid 中的搜索运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35863634/