带列重新排序的JQGrid

时间:2010-02-23 10:07:22

标签: jquery jqgrid

我有一个jqgrid,我可以在我的JQGrid中使用此选项重新排序我的列

    jQuery("#list").jqGrid({
                sortable: true,
                ... 
});

此功能让我重新排序所有列。但我希望有些列必须在固定的位置。有办法解决这个问题吗?

提前致谢!

布鲁诺

4 个答案:

答案 0 :(得分:4)

永远不要说永远。 jqGrid使用jQueryUI的Sortable类来执行列拖放功能。 http://jqueryui.com/demos/sortable/

要从可排序列列表中删除列,请在渲染网格后运行这两个命令(可排序:true)。

// disable the sortable property on your target element 
// (which was applied when jqGrid rendered the grid)
$('tr.ui-jqgrid-labels').sortable({ cancel: 'th:#element_id'});
// update the list of sortable item's, and exclude your target element
$('tr.ui-jqgrid-labels').sortable({ items: "th:not(#element_id)" });

注意:如果您的不合格列位于网格的左边缘或右边缘,则效果最佳。否则,您仍然可以重新排序它们周围的其他列。

另外:确保您了解两个可排序选项(网格级别和colmodel级别)之间的差异。在网格选项中,“sortable:true”表示可以通过拖放重新排序列。在colmodel选项中,“sortable:true”表示您可以通过单击列的标题对行重新排序。在网格选项上将sortable设置为true将不会级联到colmodel选项。但是,在colmodel上,sortable默认为true。

答案 1 :(得分:3)

现在,您可以在2013年定义“可排序”的“排除”参数 ,像这样:

sortable: {
    exclude: '#'+ grid[0].id +'_actions_buttons'
},

答案 2 :(得分:1)

您可以为sortable

中的每列设置colModel
colModel: [{ name: 'name', index: 'name', sortable: true },...

查看documentation它非常有帮助。

答案 3 :(得分:1)

这在jqgrid中是不可能的。我也搜索了很长时间。我尝试的一切都失败了。