1

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

それは機能しますが、高度な検索を開いたときにのみ、新しいフィルターラベル名を追加すると再びブラインドになります

4

2 に答える 2

1

jqGrid コードはgrid.filter.js明示的に colModelnameを使用labelし、ドロップダウンでオプションを生成します。

str += "<option value='"+that.p.columns[i].name+"'" +selected+">"+that.p.columns[i].label+"</option>";

したがって、jqGrid 自体に変更を加えない限り、jqGrid API を使用して目的を達成することはできません。


とはいえ、jqGrid を変更しなくても、ハッキングしてafterRedraw関数を使用して、ラベルをカスタムのものに置き換えることができる場合があります。コードはきれいではありませんが、動作させることができるかもしれません...

于 2013-10-10T15:56:42.923 に答える