使用可移动行句柄时导入和导出数据时出现制表符问题

问题描述 投票:0回答:1

我使用 table.download 导出并使用 table.import 将数据保存和检索到我的表中。 一切都很好,直到我使用

moveableRows: true,
rowHeader:{headerSort:false, rowHandle: true, formatter:"handle"},

仅当使用显示“formatter:”handle”'的句柄并尝试导入时,我才会遇到问题。我仍然可以在没有句柄的情况下移动行,一切正常,但我喜欢行左侧的句柄,并且似乎是使用句柄配置在将 csv 文件读入表中时导致错误。

我看到的实际错误是,当将 csv 数据读入表中时,行中的第一个字段丢失。

如有任何指点,我们将不胜感激。

我的设置如下;

var tableCues = new Tabulator("#cueTable", {
    rowHeight: 30,
    movableRows: true,
    rowHeader:{headerSort:false, resizable: false, minWidth:30, width:30, rowHandle:true, formatter:"handle"},
    selectableRows: true,
    placeholder: "Awaiting Data, Please Load File",
            columns: [
            { title: "Name", field: "name", width: 150, editor:"input" },
            { title: "Item", field: "item", editor:"input"},
            { title: "ABS Move", field: "absmove", editor:"input"},
            { title: "Speed", field: "speed", editor: "input"},
            { title: "Accel", field: "accell", editor: "input"},
            { title: "Decel", field: "decel", editor: "input"},
            { title: "Position", field: "posnow", editor: "input"},
            { title: "Progress", field: "progress", formatter: "progress", sorter: "number" },
            { title: "Done", field: "car", hozAlign: "center", editor: true, formatter:
                "tickCross", formatterParams: { crossElement: false },
                headerSort: false, editable: true },
            { formatter:"buttonCross", align:"center", title:"del", headerSort:false, cellClick:function(e, cell){
                if(confirm('Are you sure you want to delete this entry?'))
                cell.getRow().delete();
                }
            }


            ],


});

//trigger download of data.csv file
document.getElementById("download-csv").addEventListener("click", function(){
    tableCues.download("csv", "data.csv");
    });

//trigger AJAX load on "Load Data via AJAX" button click
document.getElementById("file-load-trigger").addEventListener("click", function () {
    tableCues.import("csv", "buffer");
});

更新:如果我以空白字段开始每行 - 两个引号和一个逗号 - 或者如果将 autoColumns 设置为 true (在这种情况下我会失去其他格式化能力),我可以正确加载 csv 文件。 现在我将尝试找到如何让 table.download 函数添加额外的空字段...

javascript tabulator formatter
1个回答
0
投票

所以这是我的解决方法。 在下载到 csv 文件之前,我添加了一列,保存后,我使该列不可见。 如果我再次保存相同的数据,它不会添加另一列,可能是因为该列具有相同的名称。

解决方案并不理想,但除非有人能想出更干净的东西,否则它是有效的!下载更改代码如下;

document.getElementById("download-csv").addEventListener("click", function(){
    tableCues.addColumn({title:"id", field:"id"},true);
    tableCues.download("csv", "data.csv");
    tableCues.hideColumn("id");
    });
© www.soinside.com 2019 - 2024. All rights reserved.