ag-grid - 防止列被复制到剪贴板

标签 ag-grid ag-grid-react

有没有办法防止列被复制到剪贴板?

我目前已使用 groupDisplayType: 'groupRows'enableRangeSelection: true 启用行分组

如果我跨行拖动选择,从而跨行组标签,它们将包含在剪贴板有效负载中 - 我想排除它,这可能吗?我没有看到任何与复制数据相关的剪贴板相关事件,仅粘贴

我首先尝试设置gridOptions.copyGroupHeadersToClipboard=false但这并没有阻止它被复制/粘贴

我还尝试实现processCellForClipboard并且我可以返回params.node.group? undefined : params.value 但是它仍然在从剪贴板粘贴的数据中创建一个空白行(这是一种改进,但有没有办法完全删除该行?)

我尝试过的最激进的方法是实现 onRangeSelectionChanged 并基本上取消选择(如果行组单元格存在于一个单元格的中间,则将 CellRange 对象拆分为两个)并调用 api.clearRangeSelection()api.addCellRange() 但这充其量是不稳定的

最佳答案

通过实现 sendToClipboard 解决了这个问题事件,这里是data是您可以处理的以竖线分隔的字符串。

首先,我通过执行 .split("\r\n") 将其分成行然后我通过在 api.getRangeCells() 范围内迭代的组合来获取所有行组行的索引并调用api.getDisplayedRowAtIndex()检查group属性(property)并记录rowIndex

然后,我采用所有范围选择对象的最低起始索引,然后 delete splitRows[groupRowIndex - startOffset]然后.filter(Boolean).join("\r\n")再次

然后您需要通过 navigator.clipboard.writeText() 将处理后的数据发送到剪贴板

关于ag-grid - 防止列被复制到剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72581554/

相关文章:

angular - 上下文菜单在我的 ag-grid 中不起作用

css - 在 typescript 中更改 gridready 上的 ag-grid 标题背景颜色

javascript - 导出前的 Ag-grid Angular 格式数据

ag-grid - 如何使用 ag-grid 为 bool 数据使用复选框

reactjs - 在ag-grid React中添加react-router-dom链接

ag-grid - 有没有办法在没有企业版的情况下对 ag-grid 中的行进行分组?

javascript - Ag grid - 用于导出数据的 processCellCallback 不起作用 Angularjs

javascript - ag-grid-react 在基本组件导入时崩溃 : missing react-dom-factories

javascript - ReactJS:更新 props - 将 2 个键:值对的 17 个对象数组转换为具有 3 个键:值对的数组

ag-grid - 如何始终在 ag-grid 中显示水平滚动条?