2011-09-17 23 views
2

私はアプリケーション固有の列型の小さなセットしか持たない非常に多くのグリッドにjqGridを使用したいと思います。整合性を実施する方法を作成したいと思います。たとえば、行のコンプライアンスステータスを示すすべての列に、特定の形式に整列させたり、特定の検索オプションなどを持たせたいとします。jqGrid - 一貫性のために拡張

{ name: 'ABC', width: 80, align: 'center', stype: "select", 
       searchoptions: { value: "1:Compliant;0:Not Compliant"} } 

私はこのようなものを持っているしたいと思います:compliancestatusは私が書くでしょう関数である

{ name: 'ABC', width: 80, mytype: compliancestatus } 

を。

jqGridのソースコードを変更することなく、このようなことが可能ですか?もしそうなら、誰かがこのタイプの拡張の例を教えてくれるでしょうか?

答えて

5

jqGrid 3.8.2はサポートされている列テンプレートです。

あなたは、たとえば、視認性の範囲内

var compliancestatus = { 
     width: 80, 
     align: 'center', 
     stype: "select", 
     searchoptions: { value: "1:Compliant;0:Not Compliant" } 
    }; 

どこかを定義し、ちょうどあなたが任意のパラメータを含めることができ、テンプレートでcolModel

{ name: 'ABC', template: compliancestatus } 

で使用することができます。列の定義は、同じ特性を有するが、

{ name: 'ABC', width: 100, template: compliancestatus } 

(場合width: 100colModelの値のような同じ値で使用される場合。

私はsuggestedですが、以前はこの機能が集中していました。たとえば、多くのグリッドにチェックボックス付きの列が多数あります。私は、グリッドのコードを削減し、共通のグリッドスタイルの管理を改善する他の多くのテンプレートを定義したのと同じ方法で

mySettings.templateCheckbox = { 
    formatter: 'checkbox', align: 'center', width: 20, 
    edittype: 'checkbox', editoptions: { value: "1:0" }, 
    stype: "select", searchoptions: { sopt: ['eq', 'ne'], value: ":Any;1:Yes;0:No" } 
}; 

:私は、場合に以下のテンプレートを使用します。

すべての列に対して共通のデフォルト設定を変更したい場合は、cmTemplateパラメータをjqGridとして使用できます。例

cmTemplate: { align: 'center' } 

については、追加parameter of jqGridとして使用することができますか

$.extend($.jgrid.defaults, { 
    cmTemplate: { align: 'center' } 
}); 

列テンプレートhereについてもっと読むに関しては、他のデフォルトのパラメータと同様に設定します。

+0

パーフェクト。私はそれを完全に逃した。ありがとうございました。 – RonR

+0

@RonR:あなたは大歓迎です!問題が解決した場合は、回答を["受け入れ"](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235)としてマークすることができます。 – Oleg

+0

私は何かを忘れてしまった:これをcolmodelで '{name: 'ABC'、template:compliancestatus}' 私はまた、列見出しの位置合わせの一貫性を強制したいと思うでしょう。私が見出しのためにしなければならないことは、これをチェーンに追加することです: '。しかし、私がcssクラス内で整列を定義し、これを行うとしても: '.jqGrid(" setLabel "、" setLabel "、" ABC "、" "text-align": "center"}) "ABC"、 ""、 "compliancestatusClass") これでも、2つの場所で正確に配置を設定する必要があります。理想的には、文書化されていないjqGridオプションalignheadingswithdataが存在します:true' – RonR

関連する問題