有没有办法防止列被复制到剪贴板?
我目前已使用 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/