【问题标题】:Completely disable a handsontable完全禁用handsontable
【发布时间】:2014-04-22 14:12:32
【问题描述】:

我刚刚开始使用带有 JSON 数据的 handsontable,它的效果很好,但我需要禁用对某些用户的所有表格输入(只读视图)。

有没有办法完全禁用handsontable,所以没有任何输入响应并且删除行插件不起作用?我试过http://dougestep.com/dme/jquery-disabler-widget-demos,这似乎不起作用,http://malsup.com/jquery/block/#element,但它实际上在控件上创建了一个 iframe 覆盖,并且使用 removerow 插件,位置设置不正确。

【问题讨论】:

标签: javascript jquery handsontable


【解决方案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(同样适用于readOnlyreadonly )。所有小写​​版本似乎适用于“大多数”点击,但并非总是如此。
猜你喜欢
  • 2012-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-16
  • 2014-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多