ColModel jqgrid不同的标签名称

时间:2013-10-10 15:24:58

标签: java jquery jqgrid

我正在使用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'))

它有效,但只有当我打开高级搜索时,当我添加新的过滤器标签名称时再次失明

2 个答案:

答案 0 :(得分:1)

grid.filter.js中的jqGrid代码明确使用colModel namelabel来生成下拉列表中的选项:

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