devextreme-react数据网格,分别启用编辑器以进行插入(新行)和编辑(现有行)

时间:2019-05-13 08:35:56

标签: devextreme

我正在使用devextreme-react。我需要使某些单元格可插入(新行),但不可编辑(现有行),但是配置仅提供“ allowEditing”选项,它们不能区分插入新记录还是编辑现有记录。

我试图向每个单元提供自定义参数“可插入”和“可编辑”,以使单元在不同的上下文中分别可编辑(在两个上下文中仅可插入,仅可编辑)。

然后我尝试了两种方法:

  1. onFocusedCellChanged我会在不必要时关闭活动编辑器
  2. 仅在必要时使用数据网格方法editCell(rowIndex,visibleColumnIndex)将所有单元格的allowEditing设置为false,并onFocusedCellChanged启用编辑器。

以下是第一种方法的示例:

Edit n9o67znjrp

如您所见,存在一些问题:

  1. 在第一个可编辑字段上自动对焦不会触发onFocusedCellChanged
  2. 我错过了一种了解行是否是新行的方法,只是试图检测键字段是否未定义或null不起作用
  3. closeEditCell不会关闭编辑器

使用第二种方法的焦点也不会总是触发,手动启用编辑器不会执行任何操作

1 个答案:

答案 0 :(得分:0)

我发现解决此问题的唯一方法是使用editCellRender,然后仅在满足适当条件时显示编辑器。

为了使用editCellRender,我必须将列配置与网格配置分开,并使用列组件(来自devextreme-react / data-grid的Datagrid.Column)

要区分插入和更新(我依靠dxkey属性),我不确定这是最好的方法。

这是带有解决方案的codeandbox的分支:

Edit 1pw3r2597