Я много работал с JQGrid и рекомендовал его всем. Единственная функция, которая мне не очень нравится, - это встроенный мультиселектор, который не использует специальные клавиши, такие как shift и ctrl, не дает вам большого контроля и сил, чтобы показывать.JQGrid onselectrow events - custom multiselect
Я хотел бы реализовать свой собственный мультиселект следующим образом: В onSelectRow- проверьте, если сдвиг или ctrl удерживается, добавьте идентификатор строки в массив и выберите его в сетке. если они не удерживаются, очистите массив и добавьте новый идентификатор строки и выберите его в сетке.
Это достаточно просто реализовать, кроме Мне нужно событие в onSelectRow, чтобы проверить, сохранены ли ключи. Я бы предпочел не прикладывать событие keydown и keyup к самому основному документу.
onSelectRow: function (id) {
event=???
if (!event.shiftKey && !event.ctrlKey) {
}
else {
}
}
С уважением, Байрон Кобб.
EDIT: Решение -
После ввода Oļegs, я сделал следующее.
- Набор
multiselect: true
в определении сетки - Скрытого столбец флажка в
gridComplete
, установив$("#myGrid").jqGrid('hideCol', 'cb');
- Проверены на клавишу Ctrl самого (не используя ключи: «ctrlKey») перед выбирать и очищая выбор, если клавиша ctrl не нажимается.
- Позже, используя массив выбора при необходимости -
var SelectedRows = $("#myGrid").jqGrid('getGridParam', 'selarrrow');
beforeSelectRow: function (rowid, e) {
if (!e.ctrlKey) {
$("#myGrid").resetSelection();
}
return true;
},
Еще раз спасибо. У меня есть версия, работающая в beforeSelectRow. Попытка использовать мультиселекцию по умолчанию с помощью multikey: «ctrlKey» вызывает только onSelectRow, если ctrl удерживается нажатой - не следует ли очистить мультиселекцию и начать новый выбор? – Bob
В моем beforeSelectRow я установил его, чтобы он всегда возвращал true, но с multiselect и multikeys (когда ctrl не удерживается) все еще не вызывает onSelectRow – Bob
@Byron Cobb: Поздравляем! Мне кажется, что поведение, которое вы внедрили, может быть интересным для других пользователей jqGrid. Вы можете добавить свой вопрос с кодом для совместного использования решения с другим. Кроме того, вы можете разместить его также в http://www.trirand.com/blog/?page_id = 393/feature-request/и, вероятно, он будет частью следующей версии jqGrid. – Oleg