完全禁用handsontable
Posted
技术标签:
【中文标题】完全禁用handsontable【英文标题】:Completely disable a handsontable 【发布时间】:2014-04-22 14:12:32 【问题描述】:我刚刚开始使用带有 JSON 数据的 handsontable,它的效果很好,但我需要禁用对某些用户的所有表格输入(只读视图)。
有没有办法,所以没有任何输入响应并且删除行插件不起作用?我试过http://dougestep.com/dme/jquery-disabler-widget-demos,这似乎不起作用,http://malsup.com/jquery/block/#element,但它实际上在控件上创建了一个 iframe 覆盖,并且使用 removerow 插件,位置设置不正确。
【问题讨论】:
您是否尝试过只读选项? github.com/warpech/jquery-handsontable/wiki/Optionshandsontable.com/demo/readonly.html 我已经考虑过了,但是在列级别设置只读然后专门禁用删除行插件会很麻烦。我希望在表级别有办法。 您可以使用级联选项禁用整个表吗? github.com/warpech/jquery-handsontable/wiki/… 什么是删除行插件? 【参考方案1】:为了完全“禁用” Handsontable,我做了以下操作:
hot.updateSettings(
readOnly: true, // make table cells read-only
contextMenu: false, // disable context menu to change things
disableVisualSelection: true, // prevent user from visually selecting
manualColumnResize: false, // prevent dragging to resize columns
manualRowResize: false, // prevent dragging to resize rows
comments: false // prevent editing of comments
);
【讨论】:
@PatrikKarisch 感谢您编辑我的代码以更改我错误地复制了false
的一些明显愚蠢的地方,我的意思是true
...!并且没有对我大喊大叫!因为我的代码所做的要点很有用,即使我显然没有仔细查看我粘贴的内容......
不客气!您的代码非常有用,因为它完全禁用了表格并且看起来也很漂亮。 readOnly: true
只会留下选择,所以如果没有您的所有其他选项,它不会感觉真的被禁用:)
这个值得上!我希望你不介意,我也改变了你的 JS 语法;)
我的语法不是“整洁”的原因,我有“错误的小故障”,是在我的代码中,每个属性都是根据需要单独完成的,我必须将所有设置收集在一起这里。我很高兴您的更改是正确的,并使独立代码更整洁。
如果你在 React 中使用 handsontable,你可以通过 <Handsontable ref=>/*ref.hotInstance*//>
访问 hot
对象【参考方案2】:
您可以使用 updateSettings
执行此操作var hot = $("#exampleGrid").handsontable('getInstance');
hot.updateSettings(
readOnly: true
);
检查以下链接: http://jsfiddle.net/Hn3Zv/
【讨论】:
这是一个好的开始,但只会禁用单元格编辑。右键单击仍然会给出“上下文菜单”,可以从中插入/删除行/列等。将contextmenu: false
添加到updateSettings()
以摆脱它。
抱歉,确切地说必须是contextMenu
(大写“M”)而不是contextmenu
(同样适用于readOnly
与readonly
)。所有小写版本似乎适用于“大多数”点击,但并非总是如此。以上是关于完全禁用handsontable的主要内容,如果未能解决你的问题,请参考以下文章