2012-01-12 8 views
0

状況になっています。再サイジング、並べ替え、列を非表示にした後、状態をグリッドに保存する必要があります。JqGrid:列の再配置後に列フィルタを埋め込む状態を復元する

フィルタの列が移動された後(columnchooser)、列フィルタ(ドロップダウン、テキストフィールド、日付選択)が正しい列に復元されない点を除き、すべて正常です。

次のJavaScriptを使用すると、必要なもの(サイズ、順序、列の可視性)をほとんど復元できますが、右側の列のフィルタを復元することはできません。 (フィルターはどこ彼らが必要後、いくつかの列が表示されます。

var listName = jQuery('#list').jqGrid('getGridParam', 'customName'); 

var colModel = LoadColumnModel(listName); 
var perm = jQuery.cookies.get(listName + '_list_perm'); 
var rowNumber = jQuery.cookies.get(listName + '_list_rowNumber'); 

if (colModel) { 
    var grid = jQuery('#list'); 
    for (var i = 0; i < colModel.length; i++) { 
     var column = colModel[i]; 
     if (column.hidden) { 
      grid.jqGrid('hideCol', column.name); 
     }; 
     ***//I hoped next line would do the trick, but it didn't :(*** 
     if (column.search && column.searchoptions) { 
      grid.jqGrid('setColProp', column.name, { search: true, searchoptions: column.searchoptions }); 
     }; 
    } 
    grid.jqGrid('setGridParam', { colModel: colModel }); 
    loadGrid = false; 
    if (rowNumber) { 
     grid.jqGrid('setGridParam', { rowNum: rowNumber }); 
     jQuery('.ui-pg-selbox').val(rowNumber); 
    } 
    grid.trigger('reloadGrid'); 
    if (perm) { 
     grid.jqGrid("remapColumns", perm, true); 
    } 
} 

誰もが手掛かりを持っている?

答えて

1

あなたはグリッドにsearchoptionsを設定していないはずです。その代わりに、あなたがjqGridのpostDataパラメータを保存/復元することができます。

私はthe answerthe answerthis oneを見て、あなたをお勧めします。それは、グリッドの状態の復元/保存を実装する方法を示しています。私はので、私は説明の理由の代わりにクッキーのlocalStorageを使用the answer

+0

すべての豊富な情報へのリンクありがとうございますが、何も選択されていないと多くの情報を含んでいないpostDataは必要ありません。グリッドを復元した後に、右の列にフィルターを表示する必要がありますコラムは並べ替え/隠されています。この時点で私はフィルターの価値は必要ありません。 – Steven

+0

@Steven:検索の際に 'postData'を見てください。検索フィルタに関する完全な情報が含まれています。たとえば、[答え](http://stackoverflow.com/a/4977896/315935)のデモを見てください。あなたは "フィルター"について何を意味しますか?それは多くの点で解釈できる。高度な検索や 'filterToolbar'を使用していますか?あらゆる種類の検索は、グリッドに適用されるフィルタです。検索ツールバーの補充が必要な場合は、[別の回答](http://stackoverflow.com/a/6884755/315935)をご覧ください。 – Oleg

+0

あなたの迅速な答えをありがとう、申し訳ありませんが私の問題を正確に指摘していないため。私は確かに、列ヘッダーの下とグリッドデータの上に表示されるfiltertoolbarを意味します。私は多くの列に "ドロップダウンフィルター"を使用します。しかし、私の問題は、検索後に選択された値を復元するのではなく、単にfiltertoolbarの右の列にフィルターの位置を復元することです。この時点で、私はcollumchooserのcollumnsをrearange、列の順序(columnindex)を変更するか、またはそれらを隠す。フィルタは適切な列に表示されません。私がそこに解決策を見つけることができるなら、私はあなたの例を見ています。 – Steven

関連する問題