Codyfire
Codyfire

Reputation: 65

Jqgrid sort column

Is it possible to dynamically sort one column of a jqGrid when clicking a button instead of clicking in the column name?

Upvotes: 6

Views: 33420

Answers (3)

Deulis
Deulis

Reputation: 474

The fourth time even luckier!. Using true in the third parameter will reload the grid for sure.

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

If you don't use true in the third parameter, in the first execution, the order ('asc' or 'desc') is not updated correctly.

Upvotes: 8

Paul Phillips
Paul Phillips

Reputation: 31

A possible solution - but not pretty:

$('#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');

as shown here

http://jsfiddle.net/qhYLT/


Another way to sort by a column programatically - specifying the order:

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

The sortGrid fires off a reload for you. It wouldn't be complete without a demo : http://jsfiddle.net/uTqD5/


Third time lucky! An undocumented feature:

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

Upvotes: 3

Chad Ferguson
Chad Ferguson

Reputation: 3091

In the button click event set the sort column in the grids postdata and then call a reload on the grid

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

Upvotes: 9

Related Questions