【问题标题】:Disable rows in ag-grid when columns are set to editable true当列设置为可编辑 true 时禁用 ag-grid 中的行
【发布时间】:2016-10-12 04:45:34
【问题描述】:

我需要使用 ag-grid 开发类似应用程序的电子表格。因为我需要禁用几行(不允许用户编辑几行)。有人可以指导我如何在 ag-grid 中将所有列设置为可编辑为 true 模式时使特定行只读。或者有没有其他方法可以归档这个功能。

【问题讨论】:

    标签: angularjs ag-grid


    【解决方案1】:

    您可以根据数据设置editable,而不是设置editable: true

    editable: params => params.data.active === true.

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      最好的方法是以某种方式使用cellEditor。它在它的 init 参数中提供了行节点,您可以迭代并检查它是否是您想要编辑的行。如果不是,则调用 stopEditing。

      抱歉,目前还没有一个可行的示例,但我将尝试解决这个问题,并在我开始尝试提供一个可行的示例。

      【讨论】:

      • 谢谢 Jarod,我使用 ag-grid 网站上的单元格编辑模板来覆盖 init 方法并插入具有禁用样式的文本输入元素。它起作用了,我不想编辑的行被禁用。但奇怪的是每次禁用行中的最后一个单元格仍然处于编辑模式。当我调试时,它确实通过了 init 方法,但仍然使用默认的开箱即用渲染进行渲染。你知道为什么会这样吗?如果不是,这是 ag-grid 中的错误。
      • 以下是我的覆盖初始化方法。 this.childIndex = params.node.childIndex; if (params.node.childIndex == 0 || params.node.childIndex == 2) { params.api.stopEditing(); this.eInput = document.createElement('input'); this.eInput.value = params.value; this.eInput.style.disabled = "禁用"} else { this.focusAfterAttached = params.cellStartedEdit; this.eInput = document.createElement('input'); this.eInput.style.width = '100%'; this.eInput.style.height = '100%'; this.eInput.value = isCharNumeric(params.charPress) ? params.charPress : params.value;}
      • 如果您的列参数中仍有editable: true,则将其删除。否则,您可以登录他们的github page 可能是一个错误。或者,如果您可以在 jsfiddle 或 plnkr 中重现您的架构,那么我们可能会提供进一步的帮助
      • 我正在构建的解决方案是有一些用户需要输入值的行,而有些行用户无法编辑这些行。我设法通过覆盖方法 NumericCellEditor.prototype.isCancelBeforeStart 来禁用行,并为我需要禁用的行返回 true。
      猜你喜欢
      • 2017-05-29
      • 2020-12-16
      • 2018-10-24
      • 1970-01-01
      • 2018-06-27
      • 2021-05-19
      • 2017-01-07
      • 2019-08-16
      • 2018-01-03
      相关资源
      最近更新 更多