【问题标题】:How can I remove rows from a table? - "ag-grid"如何从表中删除行? - “农业网格”
【发布时间】:2021-07-30 13:02:52
【问题描述】:

我在我的 Angular 项目中使用 ag-grid 库。我试图通过使用doesExternalFilterPass 来阻止某些节点显示在表格中。

doesExternalFilterPass 方法针对表中的每个节点运行,如果我从他们的文档中正确理解该方法返回 false,则不应显示它:

doesExternalFilterPass 为网格中的每个行节点调用一次。如果返回 false,则该节点将被排除在最终集合之外。

下面是我的代码:

doesExternalFilterPass(node: any) {
    for(let i = 0; i < this.columnDefs.length; i++) {
        var temp = this.columnDefs[i].headerName;

        if(node.data[temp] === 'Declined') {
            console.log('found);
            return false;
        }
    }
}

代码运行成功,控制台打印出“found”。上面的代码从列的Filter List 中删除了值'Declined',但具有值'Declined' 的行仍然显示在表中。

如何完全删除具有“已拒绝”值的行?

您的指导将不胜感激。

【问题讨论】:

    标签: angular typescript ag-grid ag-grid-angular


    【解决方案1】:

    在我看来,您甚至希望在将数据显示在网格中之前从数据中过滤掉这些对象,所以如果我没有误解您的问题,一个简单的filter 就可以了:

    this.myData = this.myData.filter(obj => obj.someProperty !== "Declined");
    
    // then create the grid
    

    显然将变量和属性名称更改为您的。

    【讨论】:

    • 这正是我想要的,尝试了您的解决方案及其工作,非常感谢
    • 太好了,很高兴我能帮上忙! :)
    • 只是一个问题,如果我想在按下按钮后将它们过滤掉怎么办?我必须先调用 setRowData,然后再调用 updateRowData?
    • 我不是 ag-grid 方面的专家,几年前只使用过一次或两次 :) 查看文档是您想要做的,是的,您可以使用 setRowData 替换具有新鲜数据的数据,所以这是正确的方法:)
    猜你喜欢
    • 2023-01-17
    • 2021-07-17
    • 2023-01-21
    • 2020-07-01
    • 1970-01-01
    • 2019-10-14
    • 1970-01-01
    • 1970-01-01
    • 2016-06-26
    相关资源
    最近更新 更多