即时翻译 jqGrid 中的搜索运算符

Translate search operators in jqGrid on the fly

我们的应用程序有自己的翻译工具,由于 jqGrid 翻译不完整,我们在寻呼机设置中将翻译注入 jqGrid。

我们正在使用 jqGrid 4.4.4 - 目前无法更新。

这几乎适用于所有翻译(请参阅下面示例中的警告文本等)。

然而,对于搜索过滤器运算符(请参阅下面的 odata 数组),这根本不起作用。 odata 字符串("equals"、"not equal"、...)不会替换为翻译后的字符串。 如前所述,使用标准的 jqGrid 语言文件不是我们的选择。

有人知道如何即时为搜索运算符注入翻译吗?

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
        }
        
    );

您使用了版本 4.8.0、...4.13.2 中存在的错误标记 free-jqgrid tag to your question, which follow to misunderstandings. The free-jqgrid tag should be used in case of usage free jqGrid

复古版本4.4.4使用$.jgrid.search.odata作为jqFilter的参数,而不是后面介绍的odata选项。因此你必须改变 $.jgrid.search.odata "on the fly".

旧版本 4.4.4 已失效,我强烈建议您升级到当前免费的 jqGrid 4.13.2。您可以直接从 CDN 使用它,就像它在 wiki 文章中所描述的那样,并且还包含在所有最新发布的免费 jqGrid 版本的自述文件中。如果您确实更喜欢使用 NuGet 包,那么您可以卸载旧的 jQuery.jqGrid package and install free-jqGrid