我有一个动态的动手表,这意味着可以在启动后添加数据。但问题是,在单击单元格的一角时向下拖动时,可以将新行添加到表中。我如何阻止用户扩展表,同时确保如果可以与按钮交互,我仍然可以添加新行。
我尝试使用
@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
提前致谢。
答案 0 :(得分:3)
您可以添加此代码以防止在拖动单元格时创建行:
fillHandle: {
autoInsertRow: false,
},
答案 1 :(得分:1)
编辑:查看此fiddle。
所以我添加了这个
fillHandle: {
autoInsertRow: false
}
并删除minSpareRows: 1
。
这为您提供了拖动功能,而无需自动创建行。
测试:
如果右键单击并手动插入行(Insert row below
),然后使用填充句柄单击并将某个值拖动到新行中,则应粘贴该值而不在其下创建新行。
注意:如果您需要水平相同的功能(也就是说,能够水平拖动值而不自动创建新的列),请删除minSparecols: 1
希望这就是你要找的东西!
将fillHandle: false
选项添加到当前选项中。
这将删除拖动和创建新行的功能,但仍然可以通过上下文菜单(contextMenu: true
)和最小备用行选项(minSpareRows: 1
)添加新行。