jqGrid отключить сортировку столбцов после создания в зависимости от некоторых внешних данных - PullRequest
2 голосов
/ 23 ноября 2011

Я ищу решение, которое дает возможность отключить сортировку столбцов в таблице jqGrid после создания, это вообще возможно?как это сделать?

Проблема в глубине: сначала я определил jqGrid, а затем предложил выбрать некоторые поля фильтра, а затем вернуть данные, относящиеся к выбранным фильтрам, код будет выглядеть так

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

, поэтому нужно что-то учитывать, если сайт был выбран, или не разрешать сортировку по столбцу id, или отключить сортировку по столбцу "id".

1 Ответ

4 голосов
/ 23 ноября 2011

jqGrid bind 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");

В последней строке дополнительно установлен курсор по умолчанию для заголовка столбца, чтобы было более ясно, что столбец не сортируется.

...