【问题标题】:Deselect selected rows from ag grid angular从 ag 网格角度取消选择选定的行
【发布时间】:2019-02-11 11:13:58
【问题描述】:

是否有任何网格 api 可以以编程方式取消选择 ag-grid 选定的行? 我正在尝试对选定的行执行一些操作,基本上是异步操作,之后我需要从网格中取消选择该行。

【问题讨论】:

    标签: javascript angular ag-grid ag-grid-ng2


    【解决方案1】:

    使用了grip api deselectAll 函数。成功了!

    this.gridOptions.api.deselectAll();
    

    【讨论】:

    • 这工作正常,但由于此表不断刷新
    • 我们可以取消选择 agggrid 中的任何特定行吗?
    • 在“gridReady”事件发生时,最好将 API 对象分配给它自己的对象(并从中运行这个函数),但基本上这段代码可以正常工作。谢谢
    【解决方案2】:

    对于将来发现此内容的任何人:

    按照 Victor 所说,通过设置 gridOptions.rowDeselection = true 来允许手动取消选择行。

    使用gridOptions.api.deselectAll() 以编程方式取消选择所有行,因为 OP 发现。

    要以编程方式取消选择单行,请使用rowNode.setSelected(false)rowNode.setSelected(isSelected, clearSelection) 也可用于选择行,如果clearSelectiontrue,将取消选择除主题rowNode 之外的所有行。

    【讨论】:

    【解决方案3】:

    将 gridOptions.rowDeselection 设置为 true 并将 rowSelection 设置为多个将在按住控制键时取消选择通过单击选中的对象。

    【讨论】:

      【解决方案4】:

      您可以尝试 GridApi 中的 deselectAll() 方法。不过,AgGrid 似乎没有取消选择特定行的选项。

      【讨论】:

      • 是的,虽然我有单选 ag 网格实例,所以这行得通。但是如果你想取消某些特定的行,你可以使用 api.forEachNodeAfterFilter(function(node) { // 选择节点 node.setSelected(false); });
      • 很好~我喜欢你的问题。因为我自己使用 AgGrid,最终自己可能会偶然发现这个问题 :)
      【解决方案5】:

      要取消选择特定的行/节点,请使用 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);
      });
      

      【讨论】:

        【解决方案6】:

        我认为这很奇怪,但将 rowDeselection 设置为 true 对我不起作用。我想要的很简单:能够在已经选择的行中取消选择。所以我检查了 AG Grid 文档的Row Selection 部分,发现:

        rowMultiSelectWithClick: ... 在此模式下单击选定的行将取消选择该行。

        嗯!是的,这听起来像我需要的!但我不想多选......!我只想要单选。所以我认为也许rowSelection 设置为single 会修复它,并且选择将是单一且可取消选择。而且......是的,它有效!我最初在这样做时有疑问的原因是使用“rowMultiSelectWithClick”和“single rowSelection”听起来很矛盾,但它无论如何都有效,这就是真的很重要! :) 因此,例如,如果您在 React 中使用它(在 Angular 或 Vanilla JavaScript 中非常相似),只需添加:

        <AgGridReact
            rowSelection="single"
            rowMultiSelectWithClick={true}
            //...
        >
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-12-02
          • 1970-01-01
          • 2019-08-08
          • 1970-01-01
          • 2021-09-23
          • 1970-01-01
          • 1970-01-01
          • 2019-05-01
          相关资源
          最近更新 更多