Есть ли какой-либо API-интерфейс сетки для программной отмены выбора выбранных строк ag-grid? Я пытаюсь выполнить какую-то операцию с выбранной строкой, в основном асинхронную операцию, после которой мне нужно отменить выбор этой строки из сетки.
Отменить выбор строк из угловой сетки ag
Ответы (5)
Используется функция Grip API deselectAll. Это сработало !
this.gridOptions.api.deselectAll();
Для тех, кто найдет это в будущем:
Разрешите отмену выбора строки вручную, установив gridOptions.rowDeselection = true
, как сказал Виктор.
Программно отмените выбор всех строк, используя gridOptions.api.deselectAll()
как обнаруженный OP.
Чтобы программно отменить выбор одной строки, используйте rowNode.setSelected(false)
. rowNode.setSelected(isSelected, clearSelection)
также можно использовать для выбора строк, и он отменит выбор всех строк, кроме подлежащего rowNode, если clearSelection
равен true
.
rowNode
— это тип данных, возвращаемый функциями, получающими строки. Примеры этих функций, вызываемых из gridApi: ag-grid. com/angular-grid/grid-api/#reference-rowNodes Узнайте больше об узлах строк здесь: ag-grid.com/angular-grid/row-object
- person naffarn; 14.04.2021
установите для gridOptions.rowDeselection значение true с rowSelection, так как несколько отменят выбор выбранного щелчком мыши при удерживании клавиши управления.
Вы можете попробовать метод deselectAll() в GridApi. Однако не похоже, что AgGrid имеет возможность отменить выбор определенных строк.
Чтобы отменить выбор определенной строки/узла, используйте api.getSelectedNodes() вместо getSelectedRows(). Затем для каждого узла используйте node.data для необходимой информации о строке, а затем node.setSelected(false), чтобы отменить выбор, когда закончите.
let selected = gridOptions.api.getSelectedNodes();
_.each(selected, function(node) {
let row = node.data;
//stuff
node.setSelected(false);
});