2014-06-10 16:46题主

求教:grid的rowEditing值校验等问题

在使用rowEditing新建一条表格中的数据时:
想实现的功能是处于编辑状态下时,只能点击保存或者取消才能结束编辑。现在的情况是当前状态下我双击其他的行,当前行就结束编辑状态:
如果设置autoCancel:false也存在问题,一是只有只有输入了数据才不让编辑其他行,二是errorSummary:false这个属性必须设置为true,否则也失效,但是这个属性的提示框很麻烦,不想显示。
1、有办法让一行在编辑状态时不允许编辑其他的行吗?
2、或者是有办法取消鼠标单击或者双击开启编辑状态吗?
试着设置clicksToEdit:0或者clicksToEdit:-1都会变成默认的2,没找到好的解决办法,请教高人指点!
2014-06-11 10:08#1
数据的验证可以在插件的validateedit事件中完成:

Fires after editing, but before the value is set in the record. Return false from event handler to cancel the change.

Usage example showing how to remove the red triangle (dirty record indicator) from some records (not all). By observing the grid's validateedit event, it can be cancelled if the edit occurs on a targeted row (for example) and then setting the field's new value in the Record directly:

grid.on('validateedit', function(editor, e) {
  var myTargetRow = 6;

  if (e.rowIdx == myTargetRow) {
    e.cancel = true;
    e.record.data[e.field] = e.value;
  }
});
2014-06-12 10:46#2
这个事件以前已经尝试过了,只有点击update或者保存(图片中)时才会触发这个事件,validateedit是在调用edit方法之前调用的,根本无法阻止双击表格带来的影响。
2014-06-12 13:42#3
校验值validateedit方法肯定有效果
至于不想让点击其他行可以重载插件initEditTriggers方法

返回开发者社区