如何禁用在handsontable中添加新的行/列?

时间:2014-05-17 15:42:27

标签: jquery handsontable

首先,有一个众所周知的错误handsontable(无论如何都是一段很棒的代码),例如, user tezhmofficial github issues list for handsontable

  

在表格的最后一行选择单元格并在行下方拖动选择时   进入表格外的区域,触发滚动视口   视线故障。这可以使用演示表重新创建。

因此,我决定完全关闭滚动条或禁用添加新的行/列。

但如何禁用在handsontable中添加新行/列?

或者,如何禁用handsontable中的滚动?

4 个答案:

答案 0 :(得分:14)

要禁用添加新行/列,请设置以下选项:

minSpareRows: 0,
minSpareCols: 0

如果您使用的是上下文菜单,则可以使用以下命令禁用该功能:

contextMenu: ["undo", "redo"]

另一种选择可能是将maxRows设置为数据中的行数,将maxCols设置为数据中的列数。注意:如果您使用的是columns选项,则会忽略maxCols

maxRows: data.numberOfRows,
maxCols: data.numberOfColumns

答案 1 :(得分:3)

我试过了

minSpareRows: 0,
minSpareCols: 0

但没有运气:(。

最后,我尝试了以下内容:

afterCreateRow: function (index, numberOfRows) {
                    data.splice(index, numberOfRows);
                }

它完成了工作:)

答案 2 :(得分:3)

使用以下选项,这对我有用..

fillHandle: {
      direction: 'vertical',
      autoInsertRow: false,
    }

答案 3 :(得分:0)

在jEXCEL中,您可以使用以下命令禁用插入行和插入列。

<html>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/numeral.js/2.0.6/numeral.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jexcel/2.1.0/js/jquery.jexcel.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jexcel/2.1.0/js/jquery.jdropdown.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jexcel/2.1.0/css/jquery.jexcel.min.css" type="text/css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jexcel/2.1.0/css/jquery.jdropdown.min.css" type="text/css" />

<script src="https://cdnjs.cloudflare.com/ajax/libs/jexcel/2.1.0/js/excel-formula.min.js"></script>

<div id="my"></div>
<script>
data1 = [
    ['US', 'Cheese', 'Yes', '2019-02-12'],
    ['CA;US;UK', 'Apples', 'Yes', '2019-03-01'],
    ['CA;BR', 'Carrots', 'No', '2018-11-10'],
    ['BR', 'Oranges', 'Yes', '2019-01-12'],
];

$('#my1').jexcel({
    data:data1,
    colHeaders: [ 'Product Origin','Description', 'Stock', 'Best before' ],
    colWidths: [ 300, 200, 100, 100 ],
    columns: [
        { type: 'dropdown', url:'/jexcel/countries', autocomplete:true, multiple:true }, // Remote source for your dropdown
        { type: 'text' },
        { type: 'dropdown', source:['No','Yes'] },
        { type: 'calendar' },
    ],
    style:[
        { A1: 'background-color: orange; ' },
        { B1: 'background-color: orange; ' },
        { C1: 'background-color: orange; ' },
        { D1: 'background-color: orange; ' },
    ],
    allowInsertRow:false,
    allowManualInsertRow:false,
    allowInsertColumn:false,
    allowManualInsertColumn:false,
});
</script>
</html>

更多示例:https://bossanova.uk/jexcel/examples