【问题标题】:How to manually set dirty flag on specific cells in GridPanel in ExtJs如何在 ExtJs 的 GridPanel 中的特定单元格上手动设置脏标志
【发布时间】:2019-06-19 02:39:50
【问题描述】:

我有一个网格面板,其中填充了来自商店的一些数据。此网格有一些可编辑的列。每行都有一个按钮来保存可编辑的数据。

我的问题是: 当我编辑更多行并且不会只保存一行时(因为我没有一个按钮用于所有行),脏标志(角落中的红色箭头)从所有其他编辑的单元格中消失,因为在我的控制器中我有store.commitChanges()方法调用。当我检查商店时,不再有脏数据。我试图在提交之前捕获脏数据的 rowIndex 并再次将提交的行设置为脏数据,但没有任何反应。 我使用 CellEdit 插件进行编辑。

我的问题是:有没有办法只更新商店和网格面板中的一行?我不想重新加载或再次加载商店。

编辑后: 保存后:

【问题讨论】:

  • 在您的控制器中,您可以尝试 commit 仅已单击的行上的记录,这样所有其他记录将保持脏。这就是“只更新一行”的意思吗?
  • @scebotari66 感谢您的快速响应:)。是的,这就是我要找的。我在 Sencha 中看到了这种方法,但我尝试使用 store.commit() 结束错误出现......相反,我应该调用 store.getAt(rowIndex).commit()。我怎样才能把你的答案作为解决/最佳答案?
  • 很高兴知道它有帮助!我会把它放在一个答案中。

标签: gridview extjs flags dirty-data


【解决方案1】:

通过调用商店的commitChanges,您将所有记录标记为“已提交”,这意味着它们不再“脏”。

您应该在您的案例中使用模型的 commit 方法,分别提交每个目标记录的更改。

【讨论】:

    猜你喜欢
    • 2016-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    相关资源
    最近更新 更多