2016-07-21 6 views
0

Я хотел бы заморозить два столбца после того, как я их переместил.Стоп-листы после перемещения

например: 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 
}); 

Но это возможно, чтобы переместить их снова после того, как вручную ...

Как заблокировать ручной ход после того, как я двигаю их в вариант?

Или просто заморозить фиксированную колонку?

Спасибо, ребята;)

+0

manualColumnFreeze свойство для этого. Я вижу, что вы уже использовали его. – Aravind

+0

Да, но вы уже можете переместить первый и второй столбцы. –

ответ

0

я, наконец, найти как заморозить колонки, но гид всегда отображающие.

Решение: 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); 
     } 
    } 
};