从 ag 网格中取消选择选定的行 angular
Deselect selected rows from ag grid angular
是否有任何网格 api 以编程方式取消选择 ag-grid 选定的行?
我正在尝试对所选行执行一些操作,基本上是异步操作,之后我需要从网格中取消选择该行。
使用手柄 api 取消全选功能。成功了!
this.gridOptions.api.deselectAll();
您可以试试GridApi中的deselectAll()方法。不过,AgGrid 似乎没有取消选择特定行的选项。
将 gridOptions.rowDeselection 设置为 true with rowSelection as multiple 将在按住控制键时通过单击取消选择。
对于将来发现此内容的任何人:
通过设置 gridOptions.rowDeselection = true
允许手动排select离子,如 Victor 所说。
按照 OP 发现的那样,使用 gridOptions.api.deselectAll()
以编程方式删除select 所有行。
要以编程方式删除select 单行,请使用rowNode.setSelected(false)
。
rowNode.setSelected(isSelected, clearSelection)
也可用于 select 行,如果 clearSelection
是 true
.[=16=,则将删除 select 除主题行节点以外的所有行]
要取消选择特定的 row/node,请使用 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);
});
我认为这很奇怪,但是将 rowDeselection
设置为 true
对我不起作用。我想要的很简单:能够在已经选择的行中取消选择。所以我检查了 AG Grid 文档的 Row Selection 部分,我发现了这个:
rowMultiSelectWithClick: ... Clicking a selected row in this mode will deselect the row.
咦!是的,这听起来像我需要的!但我不想多选...!我只想要单选。所以我认为 可能 将 rowSelection
设置为 single
会修复它并且选择将是 单一且可取消选择 。而且......是的,它有效!我最初怀疑这样做的原因是将“rowMultiSelectWithClick”与“single rowSelection”一起使用听起来矛盾,但它仍然有效这才是真正重要的! :)
因此,例如,如果您在 React 中使用它(在 Angular 或 Vanilla JavaScript 中非常相似),只需添加:
<AgGridReact
rowSelection="single"
rowMultiSelectWithClick={true}
//...
>
是否有任何网格 api 以编程方式取消选择 ag-grid 选定的行? 我正在尝试对所选行执行一些操作,基本上是异步操作,之后我需要从网格中取消选择该行。
使用手柄 api 取消全选功能。成功了!
this.gridOptions.api.deselectAll();
您可以试试GridApi中的deselectAll()方法。不过,AgGrid 似乎没有取消选择特定行的选项。
将 gridOptions.rowDeselection 设置为 true with rowSelection as multiple 将在按住控制键时通过单击取消选择。
对于将来发现此内容的任何人:
通过设置 gridOptions.rowDeselection = true
允许手动排select离子,如 Victor 所说。
按照 OP 发现的那样,使用 gridOptions.api.deselectAll()
以编程方式删除select 所有行。
要以编程方式删除select 单行,请使用rowNode.setSelected(false)
。
rowNode.setSelected(isSelected, clearSelection)
也可用于 select 行,如果 clearSelection
是 true
.[=16=,则将删除 select 除主题行节点以外的所有行]
要取消选择特定的 row/node,请使用 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);
});
我认为这很奇怪,但是将 rowDeselection
设置为 true
对我不起作用。我想要的很简单:能够在已经选择的行中取消选择。所以我检查了 AG Grid 文档的 Row Selection 部分,我发现了这个:
rowMultiSelectWithClick: ... Clicking a selected row in this mode will deselect the row.
咦!是的,这听起来像我需要的!但我不想多选...!我只想要单选。所以我认为 可能 将 rowSelection
设置为 single
会修复它并且选择将是 单一且可取消选择 。而且......是的,它有效!我最初怀疑这样做的原因是将“rowMultiSelectWithClick”与“single rowSelection”一起使用听起来矛盾,但它仍然有效这才是真正重要的! :)
因此,例如,如果您在 React 中使用它(在 Angular 或 Vanilla JavaScript 中非常相似),只需添加:
<AgGridReact
rowSelection="single"
rowMultiSelectWithClick={true}
//...
>