jqGrid在创建后根据某些外部数据禁用列排序

时间:2011-11-22 22:50:14

标签: jquery jqgrid jquery-ui-sortable

我正在寻找能够禁用列排序的解决方案 jqGrid表创建后,是否可能?怎么做?

深入的问题: 首先我定义了一个jqGrid,然后提供了一些过滤器字段,然后返回被认为是所选过滤器的数据,代码将如下所示

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

所以需要一些东西,如果已经选择了网站,或者不允许在id列上进行排序,或者在“id”列上禁用排序。

1 个答案:

答案 0 :(得分:4)

jqGrid将每个可排序列标题上的click事件处理程序绑定到对数据进行排序的函数。要禁用列上的列排序,您可以取消绑定click事件。例如,如果您的列名为'colName',而id =“list”的网格,则<th>元素的ID(列标题)将为​​“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");

最后一行在列标题上另外设置了默认光标,以更清楚地表明该列不可排序。