移动后冻结列

Freeze columns after move

我想在移动两列后冻结它们。

例如:JSFiddle

var
    myData = Handsontable.helper.createSpreadsheetData(10, 50),
    container = document.getElementById('example1'),
    hot;

hot = new Handsontable(container, {
    data: myData,
    rowHeaders: false,
    colHeaders: true,
    preventOverflow: 'horizontal',
    allowInsertRow: false,
    allowInsertColumn: false,
    fixedColumnsLeft: 2,
    contextMenu: false,
    manualColumnMove: [2, 5],
    manualColumnFreeze: true
});

但手动后可以再次移动它们...

在选项中移动它们后如何阻止手动移动?

或者只是冻结固定列?

谢谢你们 ;)

我终于找到了冻结列的方法,但是指南总是显示。

解决方案:JSFiddle

var
   myData = Handsontable.helper.createSpreadsheetData(10, 50),
   container = document.getElementById('example1'),
   hot,
   fixedColumnsLeft = 2;

hot = new Handsontable(container, {
   data: myData,
   rowHeaders: false,
   colHeaders: true,
   preventOverflow: 'horizontal',
   allowInsertRow: false,
   allowInsertColumn: false,
   fixedColumnsLeft: fixedColumnsLeft,
   contextMenu: false,
   manualColumnMove: true,
   manualColumnFreeze: true,
   beforeColumnMove: setBeforeColumnMove(),
});

function setBeforeColumnMove() {
   return function(startColumn, endColumn) {
      var manualColumnMove = hot.getPlugin("ManualColumnMove");

      if (startColumn < fixedColumnsLeft || endColumn < fixedColumnsLeft) {
         manualColumnMove.changeColumnPositions(endColumn, startColumn);
      }
   }
};