Можно ли остановить выделение и / или выделение строки (й) jqGrid? - PullRequest
21 голосов
/ 27 января 2010

Я просмотрел документацию , но не смог найти ответ. Есть ли способ предотвратить выделение строки при выборе? Это или даже способ остановить выделение строки вообще. Мне нравится опция "hoverrows: true", но в идеале я бы хотел помешать выбору строки при нажатии.

Спасибо,

Обновление: Я смог «хакерски» реализовать что-то, что кажется временным исправлением. Мне это совсем не нравится и в идеале хотелось бы лучшего решения, если оно есть ...

Я обнаружил, что если я передам опцию

onSelectRow: function(rowid, status) {
    $('#'+rowid).removeClass('ui-state-highlight');
}

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

Есть ли другой, более идеальный способ сделать это?

Ответы [ 5 ]

51 голосов
/ 28 января 2010

Используйте следующий код:

beforeSelectRow: function(rowid, e) {
    return false;
}
6 голосов
/ 19 сентября 2011

Если у вас, как и у меня, есть gazillion jqGrids и вы не хотите переопределять onSelectRow для каждого из них, вот глобальная версия решения Reigel, которая отлично сработала для меня:

jQuery.extend(jQuery.jgrid.defaults, {
    onSelectRow: function(rowid, e) {
        $('#'+rowid).parents('table').resetSelection();
    }
});
1 голос
/ 27 января 2010

попробовать:

onSelectRow: function(rowid, status) {
    $("#grid_id").resetSelection(); //Resets (unselects) the selected row(s). Also works in multiselect mode.
}

Вы можете прочитать документацию здесь . Надеюсь, это поможет вам ...

1 голос
/ 27 января 2010

Полагаю, вы могли бы обратиться к этому напрямую в CSS. Просто переопределите значения для ui-state-highlight для вашей конкретной таблицы

#table_id tr.ui-state-highlight {
  border: inherit !important;
  background: inherit !important;
  color: inherit !important;
}

#table_id tr.ui-state-highlight a {
  color: inherit !important;
}

#table_id tr.ui-state-highlight .ui-icon {
  background-image: inherit !important;
}

Я использовал значение inherit просто в качестве примера - вам, вероятно, потребуется скопировать некоторые значения из вашего theme.css, чтобы эта работа работала.

0 голосов
/ 20 сентября 2018

Да, используйте обратный вызов rowattr:

rowattr: function (rowData,currentObj,rowId) {
    if (rowData.SomeField=="SomeValue") { 
        return {"class": "ui-state-disabled"};
    }
},

Это также затеняет строку и отключает выбор.

...