【问题标题】:Ext Js 6.0.0 remove table's small red dirty cell flags manuallyExt Js 6.0.0 手动删除表的红色小脏单元格标志
【发布时间】:2018-05-14 10:55:53
【问题描述】:

我有一个表格,可以在其中更改单元格数据,然后我手动触发带有更改数据的 AJAX PUT 请求。 “表”正在扩展 Ext.grid.Panel 。请求成功返回后,我希望更改单元格的红旗消失。

// some ID actually passed from somewhere else
var myEntityId = '123456';    

Ext.Ajax.request( {
  url: '/myEntity/'+ myEntityId,
  method: 'PUT',
  params: { pressure: 47 },
  success: function( response, opts ) {
    // remove red cell flags of the table...
  },
});

我该怎么做?

https://stackoverflow.com/a/11905922/845117 的帖子并没有真正帮助我。在代码运行的位置,我并没有真正将存储连接到我的表格单元格。另外,我向后端发送的信息比简单显示在表。这也是为什么我使用额外的 ajax 请求来更新后端的原因。)

【问题讨论】:

    标签: extjs extjs6 extjs6-classic


    【解决方案1】:

    您始终可以使用record.commit() 提交记录,而无需将其同步到后端。

    https://fiddle.sencha.com/#view/editor&fiddle/2glo

    【讨论】:

    • 亚历山大,谢谢你的提示!我必须获取记录变量并调用record.commit()。有用。如您的示例所示,我无法使用侦听器checkchange,因为它在我的列中不存在;可能是另一个 ExtJs 版本。
    • 是的,您的列不是checkcolumn,但如何获取记录仍然适用于所有其他网格事件(记录通常是事件的参数)。我使用了一个检查列,因此我可以使示例尽可能小,因为所有其他列类型至少需要一个编辑插件。
    【解决方案2】:

    您确实有一个连接到网格的商店 - 这就是网格的工作方式。只是商店没有连接到代理,这绝对没问题。

    这些单元格被标记是因为商店认为这些记录未保存。要清除标志,您需要改变商店的想法。您可以使用 Store 对象上的 commitChanges 方法来执行此操作。例如:

    success: function( response, opts ) {
      grid.getStore().commitChanges();  
    },
    

    或者,您可以通过将网格配置为不显示它们来完全隐藏危险信号。为此,您可以在构建或初始化网格时向网格提供 viewConfig

    viewConfig: { showDirty: false }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-10
      • 1970-01-01
      • 2019-06-19
      • 2018-01-20
      • 1970-01-01
      • 2019-07-09
      • 1970-01-01
      • 2011-01-07
      相关资源
      最近更新 更多