2011-11-22 51 views
2

我正在尋找解決方案,它能夠在創建後禁用列排序 jqGrid表,甚至有可能嗎?怎麼做?jqGrid在創建後禁用列排序取決於一些外部數據

問題深入: 首先我定義了一個jqGrid的,然後提供給拿一些過濾字段,然後返回視爲選擇過濾數據,代碼將看起來像這樣

jQuery("#gridtable").jqGrid('setGridParam',{url:"/getUsers/?site="+site+",page:1}).trigger("reloadGrid"); 
$('#results').show(); 

所以需要的東西都把如果網站已被選中或不允許在id列上排序,或禁用「id」列上的排序。

回答

4

jqGrid綁定click將每個可排序列標題的事件處理程序綁定到對數據進行排序的函數。要禁用列上的列排序,您可以解除綁定click事件。例如,如果您有名稱爲'colName'的列,並且id爲「list」的網格,則元素(列標題)的標識爲<th>將爲「list_colName」。因此,禁用排序,你可以做到以下幾點:

var $grid = $("#list"), columnName = 'colName', 
    $th = $("#" + $.jgrid.jqID($grid[0].id) + "_" + columnName); 

$th.unbind("click"); 
$th.children("div.ui-jqgrid-sortable").css("cursor", "default"); 

最後一行還設置光標默認列標題,顯示更加清晰,列不可排序。

+0

就是這樣!謝謝你... – vaske

+1

@vaske:不客氣! – Oleg

+1

有沒有辦法可能以後再次綁定它,以及如何?我知道有辦法綁定,但什麼是正確的處理函數? – vaske