Да, это правда, что это не очень традиционный подход, и в основном это то, что вы сказали делать, но я обнаружил, что это был самый простой способ выбрать все строки, а также установить флажок заголовка:
var grid = $("#my_grid");
grid.resetSelection();
$('#cb_my_grid').click();
var ids = grid.getDataIDs();
for (var i=0, il=ids.length; i < il; i++ )
grid.setSelection(ids[i], false);
Полагаю, строки не выбираются, когда флажок заголовка устанавливается программным способом из-за базовой реализации jqGrid, как вы сказали? Я не знаю, как это работает внизу, но сейчас мне кажется, что это работает сверху.
Основная причина, по которой я хочу убедиться, что в моих сетках установлен флажок заголовка, состоит в том, что пользователь может подсознательно определить, что да, все строки в сетке определенно выбраны прямо сейчас (включая те, которые не видны под текущим представлением прокрутки). ) и не нужно ставить флажок в заголовке, просто чтобы убедиться.
@ Крейг - мне придется попробовать ваш метод, он кажется проще и разумнее