jqGrid - 禁用特定列的重新排序

时间:2012-09-26 18:15:24

标签: jqgrid

我有一个启用了网格级“可排序”选项的jqGrid。这让我可以拖动列来重新排序它们,这很棒。但我希望阻止用户使用一个特定列进行此操作,而不会影响其他列。这可能吗?

1 个答案:

答案 0 :(得分:0)

我觉得你的问题非常有趣,所以我做了the corresponding demo来证明这个解决方案。在演示中,第一列“日期”不合格。

我建议您阅读近距离主题的其他两个旧答案:thisthis。我的建议是基于同样的想法。

如果使用jqGrid的sortable: true选项,则会在内部使用内部jqGrid方法sortableColumnssortableColumns方法使用jQuery Sortable进行实现,并将具有items的网格的id="list"选项初始化为值“> th:not(:has(#jqgh_list_cb,#jqgh_list_rn,#) jqgh_list_subgrid),:隐藏)”。它使列"cb""rn""subgrid"无法排序。如果您使用jqGrid选项multiselect: truerownumbers: truesubGrid: true,则列可以插入网格中。以同样的方式,您拥有name: "invdate"列,然后列元素的相应ID将为jqgh_list_invdate。因此,可以使用选项sortable作为以下

sortable: {
    options: {
        items: ">th:not(:has(#jqgh_list_cb,#jqgh_list_invdate,#jqgh_list_rn,#jqgh_list_subgrid),:hidden)"
    }
}

使"invdate"列无法使用。