gxt 2.2.5改变行编辑状态

时间:2014-01-20 07:30:37

标签: java gwt grid gxt roweditor

使用GWT + GXT。是否可以通过例如messagebox更改活动行编辑器状态? 我创建了一个事件,它调用带有文本区域的消息框,并且为了将文本从该textarea放入网格我需要调用rowEditor.stopEditing(true),然后手动将文本插入数据网格,然后执行rowEditor.startEditing(true) 。 所以它看起来像:

re.stopEditing(true);
List<Model> list = data.getModels();
list.get(activeRow).set("key","value");
re.startEditing(activeRow, true);

它有效......但是如果需要,用户无法取消他的更改,因为它们已经通过re.stopEditing(true)保存;

1 个答案:

答案 0 :(得分:0)

听起来如果stopEditing导致您不想要的状态更改(保存的更改),并且没有其他API可以跳过该副作用,那么有一些潜在的选择(因为我是不熟悉这个库,我会谈到一般模式):

  1. 不要在“真实”模型上调用它:使用克隆/副本完成所有工作,然后在提交更改时,将更改保存到实际模型中。
  2. 在进行任何编辑之前,您能存储模型的“原始”状态吗?然后通过stopEditing完成多少次中间保存无关紧要,只需恢复原始模型即可实现取消操作。
  3. 如果两者都不可能,那么有一个更复杂的选项 - 查看stopEditing的源代码 - 你可以扩展类来覆盖这个方法,删除不需要的功能吗?如果涉及一堆私有变量,您可以随时expose them to your extension via reflection,或者根据需要详细说明您的扩展程序以涵盖更改。
  4. 希望其中一个能够适用于您的情况。