【问题标题】:gxt 2.2.5 changing row editor stategxt 2.2.5 改变行编辑器状态
【发布时间】:2014-02-09 07:04:07
【问题描述】:

使用 GWT + GXT。是否可以通过例如消息框来更改活动的行编辑器状态? 我创建了一个事件,它调用带有文本区域的消息框,为了将该文本区域中的文本放入网格中,我需要调用 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); 保存了。

【问题讨论】:

  • 所以我想没有办法做到这一点..

标签: java gwt grid gxt roweditor


【解决方案1】:

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

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

希望其中之一能够适用于您的情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-24
    • 1970-01-01
    相关资源
    最近更新 更多