Изменить стиль курсора в зависимости от сортировки или нет - PullRequest
13 голосов
/ 12 апреля 2011

Я использую jqGrid и имею 3 столбца, которые НЕ МОГУТ сортировать.В этот момент курсор меняется на руку, когда пользователь наводит курсор на заголовки, независимо от того, установлена ​​ли сортировка в true или false.Мне бы хотелось, чтобы этот курсор был чем-то отличным от руки (текста или указателя) на этих заголовках столбцов.Это сбивает с толку пользователей таким образом.Это то, что можно установить?

Спасибо, Марк

Ответы [ 4 ]

17 голосов
/ 12 апреля 2011

Я считаю вопрос очень хорошим.Так что +1 от меня.

Вы не первый (и не последний) человек, который хочет иметь еще один курсор на несортируемых столбцах.Жаль, но jqGrid предоставляет вам не классы или некоторые другие простые атрибуты, которые можно использовать для поиска элементов, в которых можно установить CSS «курсор: по умолчанию».

Поэтому я предлагаю сделать это с помощью следующего кода:

var myGrid = $("#list");

// create the grid
myGrid.jqGrid({
  // all jqGrid parameters
});

// fix cursor on non-sortable columns
var cm = myGrid[0].p.colModel;
$.each(myGrid[0].grid.headers, function(index, value) {
    var cmi = cm[index], colName = cmi.name;
    if(!cmi.sortable && colName!=='rn' && colName!=='cb' && colName!=='subgrid') {
        $('div.ui-jqgrid-sortable',value.el).css({cursor:"default"});
    }
});

В вы можете увидеть демонстрацию в реальном времени, что метод работает.В демонстрационной версии последний столбец «Примечания» не сортируется.

Было бы хорошо, если бы такое поведение было стандартным в следующей версии jqGrid.Я постараюсь найти время и написать предложение, что из кода jqGrid следует изменить, чтобы сделать поведение готовым.

ОБНОВЛЕНО : проблема с курсоромна несортируемых столбцах не существует больше в бесплатной jqGrid 4.8 .

1 голос
/ 20 августа 2011

Пример Олега работал отлично, но у меня была просьба всегда показывать стрелки, если столбец можно сортировать. Я знаю, что комментирую, но подумал, что у кого-то может быть такое же требование.

Итак, я добавил это в его цикл:

jQuery('span.s-ico',value.el).remove();

Затем, после запуска его кода:

jQuery(".s-ico").show();

А затем добавил это в мою сетку:

onSortCol:function(index, iCol, sortorder){
    // redisplay all arrows
    jQuery(".s-ico").show();
}
1 голос
/ 12 апреля 2011

Добро пожаловать на SO.

Абсолютно.CSS:

th.unsortableclass {
cursor: default;
}

Теперь примените этот класс к заголовкам столбцов, которые нельзя сортировать.

0 голосов
/ 12 апреля 2011
$("jquery selector to pick only non-sorted columns").css("cursor", "default");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...