2012-03-01 4 views
4

Можно ли динамически сортировать один столбец jqGrid при нажатии кнопки, а не щелкая по имени столбца?Jqgrid sort column

+0

почему нет ?? должна быть настройка для этого – FosterZ

ответ

6

В случае нажатия кнопки установить столбец сортировки в сетках PostData, а затем вызвать перезагрузку на сетке

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

Значение параметра 'sidx' будет построено из опции' sortname' jqGrid и значения 'sord' из' sortorder'. Поэтому вы должны сделать следующее: '$ ('# yourgrid'). JqGrid ('setGridParam', {sortname: 'yourColumn', sortorder: 'asc'}). Trigger ('reloadGrid', [{page: 1}]); '. Кроме того, вы должны закрыть цитату в '$ ('# 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/


третий раз повезло! Недокументированная функция:

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

В четвертый раз даже повезло !. Использование true в третьем параметре наверняка перезагрузит сетку.

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

Если вы не используете правда в третьем параметре, в первом исполнении, порядок («по возрастанию» или «по убыванию») не обновляется правильно.