簡體   English   中英

Tabulator 可移動行 -- 如何 select/ 一次移動多個項目

[英]Tabulator moveable rows -- how to select / move multiple items at one time

使用 Tabulator 4.7,我實現了一個在表格之間移動項目的應用程序,就像這個例子:

http://tabulator.info/examples/4.7?#movable-between-tables

但是,我不知道如何 select 一次移動多個項目。 我不確定這是否可能,因為當我使用類似

            selectable:5,

隨着

            movableRows:true,
            movableRowsConnectedTables:otherTableIDs,
            movableRowsReceiver: "add",
            movableRowsSender: "delete",

它不會改變行為。 任何幫助,將不勝感激!

從 4.7 版開始,您不能使用 Tabulator 一次移動多行。

可移動行功能一次只允許移動一行。

此功能在 5.0 版本之后的開發路線圖上

對於在單個表中移動多行,此代碼可以解決問題。

用於標識所選行的 rowMoving 事件。

 rowMoving = (row) => {
    this.rowsToMove = [];
    let rows = this.tableInst.getRows();
    for (let row of rows) {
      let rowData = _.cloneDeep(row.getData());
      if (row.isSelected()) {
        this.rowsToMove.push(rowData);
      }
    }
  };

rowMoved 事件用於將 rowsToMove 插入到表中被拖到的位置。

  rowMoved = (row) => {
    let rowsToMove = this.rowsToMove;
    let rowsOrg = this.tableInst.getData();
    let rowsNext = [];
    let rowsHaveBeenMoved = false;
    for (let row of rowsOrg) {
      if (this.isRowsToMove(rowsToMove, row)) {
        if (!rowsHaveBeenMoved) {
          for (let r of rowsToMove) {
            rowsNext.push(r);
          }
          rowsHaveBeenMoved = true;
        }
      } else {
        rowsNext.push(row);
      }
    }
    this.tableInst.replaceData(rowsNext);
  };

這個助手 function 用於查看一行是否與任何 rowsToMove 匹配。

  isRowsToMove = (rows, row) => {
    let match = false;
    for (let r of rows) {
      if (_.isEqual(r, row)) {
        match = true;
        break;
      }
    }
    return match;
  };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM