2012-05-11 3 views
0

jqGrid 4.3.1に高度なフィルタがあります。はい/いいえのようなブール型の列の中には、新しい高度なフィルター行が作成されたときに列の種類が選択されたときにドロップダウンを表示するものがあります。 など。列2はIsActive(ブール型)型で、これを選択すると、テキストボックスの代わりにドロップダウンが表示されたとします。 次のようにjqGrid高度なフィルタがある上書きしますコード:jqGrid詳細検索ダイアログ - ドロップダウン選択を持つ列

var cols = grid.jqGrid("getGridParam", "colModel"); 
for (var i = 0; i < cols.length; i++) { 
if (cols[i].stype && cols[i].stype == "select" && cols[i].searchoptions && cols[i].searchoptions.buildSelect && $.isFunction(cols[i].searchoptions.buildSelect) 
&& !cols[i].searchoptions.dataUrl && !cols[i].searchoptions.value) { 
cols[i].searchoptions.value = cols[i].searchoptions.buildSelect(null); 
} 

4.3バージョン(4.3.1前1つのバージョン) で正常に動作するために使用されるこのコードの問題を引き起こしているものを知っているが、今の私はいけませんドロップダウンは空白になります。 何か助けに感謝します!

答えて

2

あなたが使用しているbuildSelectというコードを投稿していないため、コードが失敗する理由を説明するのは難しいです。私がほとんど理解していないのは、あなたがとても複雑なコードを持っている理由です。列IsActiveにBoolean型があり、「Yes」と「No」の値を持つドロップダウンでAdvance Searchingダイアログに表示し、グリッドに表示し、編集中にチェックボックスで表示する場合は、次の操作を実行できます。

mytemplateCheckboxはあなたが

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

のように説明したアプローチ私は永久に使用し、それは非常によく動作を定義

{ name: "IsActive", template: myCheckboxTemplate } 

。上記のコードとの唯一の違いは、 "checkbox"の代わりに"clickableCheckbox"フォーマッタを使用することです。必要ならばhereからダウンロードできます。

+0

あなたの答えに感謝します。私は本当に苦しんでいる新しい質問を追加しました.http://stackoverflow.com/questions/10579864/jqgrid-column-selector-inline-rather-than-in-dialog – chugh97

+0

私のビルド選択関数は関数にマップされていますそれはfolowing実装return ":All; true:True; false:False"; – chugh97

+0

@ chugh97:どの意味でサーバーから静的データを取得し(URL 'dataUrl'から)、静的な値を持つselectに変換する必要がありますか?さらに、 'buildSelect'はHTMLフラグメント' '': 'valueプロパティの値として使用されます。検索ダイアログの ':All;'の使い方も良くありません。すべては非常に奇妙なようです... – Oleg

関連する問題