【问题标题】:SlickGrid and copy text from cellSlickGrid 并从单元格中复制文本
【发布时间】:2018-05-01 10:12:02
【问题描述】:

我正在尝试复制单元格的文本内容 - 我不需要能够粘贴到 Excel 或任何内容中,我只想要纯文本内容。突出显示文本、右键单击和选择复制按预期工作(因此与SlickGrid and Text Selection 中的问题不同,因为我可以选择文本)但突出显示并按 ctrl+c 不能(没有任何内容被复制到剪贴板)。

我尝试在 slick.grid.js($canvas.on("keydown", handleKeyDown)$focusSink.add($focusSink2).on("keydown"), handleKeyDown))中注释掉按键处理代码,但没有任何变化。

Windows 10 上的 Chrome 61,如果重要的话。

使用Basic use with configuration 示例进行复制,将 enableTextSelectionOnCells 设置为 true:

<!DOCTYPE HTML>
<html>
    <head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <link rel="shortcut icon" type="image/ico" href="favicon.ico" />
  <title>SlickGrid example 1: Basic grid</title>
  <link rel="stylesheet" href="../slick.grid.css" type="text/css"/>
  <link rel="stylesheet" href="../css/smoothness/jquery-ui-1.11.3.custom.css"     type="text/css"/>
<link rel="stylesheet" href="examples.css" type="text/css"/>
</head>
<body>
<div id="myGrid" style="width:600px;height:500px;"></div>    
<script src="../lib/jquery-1.11.2.min.js"></script>
<script src="../lib/jquery.event.drag-2.3.0.js"></script>

<script src="../slick.core.js"></script>
<script src="../slick.grid.js"></script>

<script>
  var grid;
  var columns = [
    {id: "title", name: "Title", field: "title"},
    {id: "duration", name: "Duration", field: "duration"},
    {id: "%", name: "% Complete", field: "percentComplete"},
    {id: "start", name: "Start", field: "start"},
    {id: "finish", name: "Finish", field: "finish"},
    {id: "effort-driven", name: "Effort Driven", field: "effortDriven"}
  ];

  var options = {
    enableCellNavigation: true,
    enableTextSelectionOnCells: true,
    enableColumnReorder: false
  };

  $(function () {
    var data = [];
    for (var i = 0; i < 500; i++) {
      data[i] = {
        title: "Task " + i,
        duration: "5 days",
        percentComplete: Math.round(Math.random() * 100),
        start: "01/01/2009",
        finish: "01/05/2009",
        effortDriven: (i % 5 == 0)
      };
    }

    grid = new Slick.Grid("#myGrid", data, columns, options);
  })
</script>
</body>
</html>

【问题讨论】:

  • 不是重复的 - enableTextSelectionOnCells 是真的,我可以选择单元格文本。我的问题是选择文本后,ctrl+c 没有复制任何内容。
  • 我们怎么知道? edit您的问题包含minimal reproducible example
  • 一直在努力争取时间来研究这个问题。有几个示例具有 Excel 样式的剪切和粘贴功能。在这些情况下,即使该列不可编辑,也必须在列上定义一个编辑器,以便它可以处理与文本的转换以进行剪切和粘贴。所以这可能是一样的。我很快就会有机会查看代码库。
  • 好的,终于有机会看看了。但是,当我测试上面的示例时,选择文本,按 ctrl-C 并粘贴到记事本中可以正常工作。不知道发生了什么。 Windows 10 上的 Chrome 66。

标签: javascript slickgrid


【解决方案1】:

我能够使用以下示例将复制到剪贴板工作: https://6pac.github.io/SlickGrid/examples/example-excel-compatible-spreadsheet.html

我不喜欢粘贴或大部分其他 Excel 功能,所以我将readOnlyMode 设置为这样:

grid.registerPlugin(new Slick.CellExternalCopyManager({
    readOnlyMode : true,
    includeHeaderWhenCopying : false,
}));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 2012-08-21
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    相关资源
    最近更新 更多