2012-04-18 6 views
0

テーブルに列のパーミュテーション情報を保存しました。この情報はbeforeRequestイベントで再ロードできます。異なるイベントでremapColumnsを使用すると、ヘッダをクリックするとソートアイコンが表示されません

mynewperm = {....}; 

myGrid.jqGrid("remapColumns", mynewperm, true); 

列の順序が正しく変更されています。しかし、私はヘッダーアイコンを失った。ここで列ヘッダーをクリックすると、もう一度 ソートアイコンが表示されず、列を並べ替えることができません。どうすれば元に戻すことができますか?私は「loadComplete」イベントで「remapColumns」の方法を適用するので、それは(私は、ユーザーを取り戻す私に追加

は、私は同じ問題をした、

YH

+0

'updateCells'をfalseに設定しようとしましたか? - myGrid.jqGrid(" remapColumns "、mynewperm、false);'?それ以外の場合は、大きなコード例やjsfiddleを投稿することができます。 –

+0

ちょうど試しましたが、動作しません。コードは次のとおりです。beforeRequest:function(){................ perm = processPermStr(permst); if(perm){myGrid.jqGrid( "remapColumns"、perm、true ); } – user1342336

答えて

1

を実際にあなたがjquery.jqGrid.src.jsソースを見れば、行は次のようになります。私のバージョンで

var previousSelectedTh = ts.grid.headers[ts.p.lastsort].el, newSelectedTh = ts.grid.headers[idxcol].el; 

ライン#1982。私は、ファイルを変更して、それを固定し、その行の直前にこれを追加しました:

 if (ts.p.lastsort < 0) // johnl. 
      ts.p.lastsort = 0; 

問題はts.p.lastsortが-1だったということでした。

0

をありがとうクッキーからの列構成)。

私は列をソートしようとすると何も起こりません。私は放火犯で、このエラーを得た:[aplastsort]が定義されていない

a.grid.headers - > jquery.jqGrid.min.js(ライン93)

多分問題が何であるかを見つけるのが参考になります

あなたはコードを変更することができれば、あなたはa.grid.headers [aplastsort]の未定義のためにテストすることができ、あなたに

2

ありがとうございます。ソースで

が、それは次のようになりますファイル:

// old 
var previousSelectedTh = ts.grid.headers[ts.p.lastsort].el 

// new: 
var previousSelectedTh = ts.grid.headers[ts.p.lastsort] ? ts.grid.headers[ts.p.lastsort].el : null 
1

私はこの問題を自分で解決していますが、上記の方法を使用していません。

TypeError: a.grid.headers[a.p.lastsort] is undefined js/jqgrid/jquery.jqGrid.min.js?1.4:86 

私はそれがこのエラーメッセージを生成Firebugのだったことに注意してください:jqgridで列をソートしようとしたとき、私は、次のエラーメッセージを受信しました。当社は、ChromeのWebアプリケーションを開発するが、ChromeのJavaScriptコンソールは非常に情報価値のエラーメッセージ生成:問題の原因ページ上のすべてが、jqGrid宣言を除去した後

Uncaught TypeError: Cannot read property 'el' of undefined 

を、それが「複数選択」オプション宣言を削除することを蒸散しましたjqGridはこの問題を解決しました。明らかに、このオプションを宣言すると、追加の隠しコラムがレンダリングされたグリッドに追加され、ユーザーは一度に複数のグリッド行を選択できます。私は確かに確信していませんなぜこれは問題を引き起こしましたが、プログラミングディレクターと相談した後、私たちの最良の推測は、列ソートが適用され、ループがないときに呼び出されるjqGridライブラリコードのどこかにforループがあることですこの余分な列が考慮されていないため、定義されていません。

奇妙な問題に奇妙な答えがありますが、これは将来的に誰かを助け、3時間ほどのデバッグを保存するのに役立ちます。

関連する問題