2012-09-26 48 views
1

我有一個jqGrid,網格級「可排序」選項被啓用。這可以讓我拖動列來重新排列它們,這非常棒。但我想阻止用戶使用一個特定的列來完成此操作,而不會影響其他用戶。這可能嗎?jqGrid - 禁用特定列的重新排序

+0

哦,我想我在這裏找到它:http://stackoverflow.com/questions/2317199/jqgrid-with-column-reordering – GregT

回答

0

我覺得你的問題很有意思,所以我提出了the corresponding demo這個解決方案。在演示中是第一列「日期」unsortable。

我建議你閱讀另外兩個關於主題的舊答案:thisthis。我的建議是基於相同的想法。

有內部jqGrid方法sortableColumns如果使用jqGrid的sortable: true選項,將在內部使用。 sortableColumns方法使用jQuery Sortable來實現,並且初始化items具有id="list"的網格的選項爲值「> th:not(:has(#jqgh_list_cb,#jqgh_list_rn,#jqgh_list_subgrid),:hidden)」。它使列"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"列不可排序。