2012-03-01 121 views
4

当点击一个按钮而不是单击列名时,是否可以动态排序jqGrid的一列?Jqgrid排序列

+0

为什么不?必须对此进行调整 – FosterZ 2012-03-01 12:47:46

回答

6

在按钮单击事件设置网格排序列POSTDATA,然后调用对电网

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

'sidx'参数的值将由jqGrid的'sortname'选项和'sortorder'中的'sord'的值构建。所以你应该这样做:'$('#yourgrid')。jqGrid('setGridParam',{sortname:'yourColumn',sortorder:'asc'})。trigger('reloadGrid',[{page:1}]] );'。此外,您应该关闭'$('#mybutton)'中的引号。 – Oleg 2012-03-01 20:44:38

+0

谢谢你的更正。更新。 – 2012-03-01 20:58:56

+0

不客气! – Oleg 2012-03-01 21:00:55

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'); 

如果没有第三个参数使用真正,在第一次执行,顺序(“升序”或“降序”)是不正确更新。