handsontable / javascript - 禁用通过拖动添加的新行

时间:2016-08-02 08:00:04

标签: javascript jquery handsontable

我有一个动态的动手表,这意味着可以在启动后添加数据。但问题是,在单击单元格的一角时向下拖动时,可以将新行添加到表中。我如何阻止用户扩展表,同时确保如果可以与按钮交互,我仍然可以添加新行。

我尝试使用

@model ModelName.Models.MyModel --HTMLCode-- @foreach (var item in Model.Users) <-- Exception. { <tr> <td>@Html.DisplayFor(modelItem => item.Name)</td> </tr> }

但这阻止我使用afterCreateRow: function(index, amount){ data.splice(index, amount) },函数添加新行。 如果这个问题相当模糊:请参阅下面的链接,获取一个默认的jsfiddle with handsontable。单击单元格的一角并向下拖动,您将看到。

http://jsfiddle.net/warpech/hU6Kz/

TL; DR :拖动单元格时禁用行创建,允许使用(在代码中)创建行alter

提前致谢。

2 个答案:

答案 0 :(得分:3)

您可以添加此代码以防止在拖动单元格时创建行:

fillHandle: {
    autoInsertRow: false,
},

答案 1 :(得分:1)

编辑:查看此fiddle

所以我添加了这个

fillHandle: {
    autoInsertRow: false
}

并删除minSpareRows: 1

这为您提供了拖动功能,而无需自动创建行。

测试:

如果右键单击并手动插入行(Insert row below),然后使用填充句柄单击并将某个值拖动到新行中,则应粘贴该值而不在其下创建新行。

注意:如果您需要水平相同的功能(也就是说,能够水平拖动值而不自动创建新的),请删除minSparecols: 1

希望这就是你要找的东西!

fillHandle: false选项添加到当前选项中。

这将删除拖动和创建新行的功能,但仍然可以通过上下文菜单(contextMenu: true)和最小备用行选项(minSpareRows: 1)添加新行。