2012-03-01 131 views
4

列名をクリックする代わりにボタンをクリックするとjqGridの1列を動的にソートできますか?ボタンのクリックイベントでJqgridソート列

+0

なぜですか? – FosterZ

答えて

6

は、POSTデータグリッドでのソート列を設定し、可能な解決策グリッド上

$('#mybutton').click(function() { 
    $('#yourgrid').jqGrid('setGridParam', {sortname: 'yourColumn', sortorder: 'asc'}).trigger('reloadGrid', [{page: 1}]); 
}); 
+2

'sidx'パラメータの値は、j​​qGridの' sortname'オプションと 'sortorder'の' sord'の値から構築されます。トリガー( 'reloadGrid'、[{page:1}])は、以下のようにする必要があります: '$( '#yourgrid')jqGrid( 'setGridParam'、{sortname: 'yourColumn'、sortorder: 'asc'}) ); '。さらに '$( '#mybutton)'で引用符を閉じるべきです。 – Oleg

+0

ありがとうございました。更新しました。 –

+0

あなたは大歓迎です! – Oleg

3

をリロードを呼ぶ - ではなく、かなり:ここに示されているよう

$('#grid').jqGrid('setGridParam', {sortname: 'id', sortorder: 'asc'}).trigger('reloadGrid', [{page: 1}]); 
$('#gbox_grid .s-ico').css('display','none'); 
$('#gbox_grid #jqgh_grid_id .s-ico').css('display',''); 
$('#gbox_grid #jqgh_grid_id .s-ico .ui-icon-triangle-1-s').removeClass('ui-state-disabled'); 

http://jsfiddle.net/qhYLT/


プログラム的列でソートする別の方法 - 順序を指定:

$('#grid').jqGrid('setGridParam', {sortorder: 'desc'}); 
$('#grid').jqGrid('sortGrid', 'id'); 

sortGridはあなたのためのリロードをオフに起動します。デモなしでは完全ではありません。http://jsfiddle.net/uTqD5/


第3回ラッキー!文書化されていない機能:

$('#grid').jqGrid('sortGrid', 'id', '', 'asc'); 
8

第4回さらに幸運な! を3番目のパラメータに使用すると、グリッドが確実に再読み込みされます。

$('#grid').jqGrid('sortGrid', 'id', true, 'asc'); 

あなたは三番目のパラメータでを使用しない場合は、最初の実行では、順序(「ASC」または「DESC」)は正しく更新されていません。

関連する問題