我正在使用jqgrid来创建网格。这个有“主要”的标题和数据等,并且“提前搜索”。不幸的是,他们都使用相同的getColModel,我想提前搜索不同的标题和colname。例如,我有类似的东西
getColModel: ->
[
{name:'dispId', label: i18n('ProjectList.dispId'), classes:'grid_col', width:6, searchoptions:{sopt:filterOperators.string}, formatter: ((cellvalue, options, rowObject) -> "<a href=\"#{url("/project/#{options.rowId}/view")}\">#{cellvalue}</a>")}
和i18n('ProjectList.disp')在预先搜索中以列名和列名显示。我的英语非常糟糕,但我希望你明白我想做什么 - 我希望在主网格中有不同的标题并提前搜索选项,我不想只在我自己的* .js脚本中更改jqgrid源代码中的任何内容。 (也许colModel中有一些属性?无法找到想法,我正在寻找解决方案)\
提前搜索选项我称之为'寻呼机'我相信
我将此添加到我的initgrid
afterRedraw: ->
$("#{gridId} select").find("option[value='expectedRealizationDate']").html(i18n('ProjectList.expectedRealizationDate'))
$("#{gridId} select").find("option[value='closing']").html(i18n('ProjectList.closing'))
它有效,但只有当我打开高级搜索时,当我添加新的过滤器标签名称时再次失明
答案 0 :(得分:1)
grid.filter.js
中的jqGrid代码明确使用colModel name
和label
来生成下拉列表中的选项:
str += "<option value='"+that.p.columns[i].name+"'" +selected+">"+that.p.columns[i].label+"</option>";
因此,除非对jqGrid本身进行了修改,否则无法使用jqGrid API实现所需。
也就是说,在不修改jqGrid的情况下,您可能会破解并使用afterRedraw
函数将标签替换为自定义标签。代码不会很漂亮,但你可以让它工作......
答案 1 :(得分:1)
如果有人想知道怎么做,那就是一个答案
$(@gridId).jqGrid('navGrid',@pagerId, {}, {}, {}, {}, {
afterRedraw: function() {
$("select").find("option[value='expectedRealizationDate']")
.html(i18n('ProjectList.expectedRealizationDate'));
$("select").find("option[value='closing']")
.html(i18n('ProjectList.closing'));
}
} );