Extjs 为什么内存代理中的数据被标记为脏数据?

Extjs 为什么内存代理中的数据被标记为脏数据?,extjs,extjs4,extjs4.2,Extjs,Extjs4,Extjs4.2,我有一个使用内存代理的商店。存储通过调用loadRawData方法获取数据。现在,我使用roweditor和rowaction对此数据进行了一些更改,这会导致脏记录,这似乎是一种正确的行为,但此存储将永远无法同步任何数据,所以为什么所有单元格都标记有此红色三角形 我想我必须在这里监督一些事情。我怎样才能在修改后的场地上不失去赛道的情况下让这些三边天使空出呢 我使用的是ExtJS 4.2.1如果您不希望网格上出现红色小三角形,可以在viewConfig中设置以下内容 markDirty: fals

我有一个使用内存代理的商店。存储通过调用
loadRawData
方法获取数据。现在,我使用roweditor和rowaction对此数据进行了一些更改,这会导致脏记录,这似乎是一种正确的行为,但此存储将永远无法同步任何数据,所以为什么所有单元格都标记有此红色三角形

我想我必须在这里监督一些事情。我怎样才能在修改后的场地上不失去赛道的情况下让这些三边天使空出呢


我使用的是ExtJS 4.2.1

如果您不希望网格上出现红色小三角形,可以在viewConfig中设置以下内容

markDirty: false

如果不希望网格上出现红色小三角形,可以在viewConfig中设置以下内容

markDirty: false

由于LUKE已经回答了这个问题,我将添加一些关于记录脏标志的附加信息


注意:该标志标记为只读,这是有原因的

至少有一个原因:

时间结束时,记录已发布 对存储区的更改,这些更改同时触发事件 修改后的数据

因此,更改标志将不会有任何影响,因为它发生在所有这些之后!因此,记录将已标记为脏记录,例如,网格将已使用红色三角形标记所有更改的列


要防止记录设置其标志,请使用/block,不要使用set,因为它将始终设置脏标志

下面是一个反转布尔值的示例,不影响
dirty
标志

record.beginEdit();
record.data.active = !rec.data.active;
record.endEdit();
由于LUKE已经回答了这个问题,我将添加一些关于记录脏标志的附加信息


注意:该标志标记为只读,这是有原因的

至少有一个原因:

时间结束时,记录已发布 对存储区的更改,这些更改同时触发事件 修改后的数据

因此,更改标志将不会有任何影响,因为它发生在所有这些之后!因此,记录将已标记为脏记录,例如,网格将已使用红色三角形标记所有更改的列


要防止记录设置其标志,请使用/block,不要使用set,因为它将始终设置脏标志

下面是一个反转布尔值的示例,不影响
dirty
标志

record.beginEdit();
record.data.active = !rec.data.active;
record.endEdit();

这是正确的答案。它在不干扰记录数据的情况下删除红色三角形。@埃里克,对不起,我刚刚看过卢克的回答。这是正确的答案。它在不干扰记录数据的情况下删除了红色三角形。@埃里克,对不起,我刚刚监督了卢克的回答。这太复杂了,为什么这是公认的答案?@Reimius 1。我只想添加一些关于脏标志的附加信息。这就是为什么我以“注意”开始我的答案,我从来没有提到过这应该只是为了防止红色三角形。是的,这次我忘了以“作为补充信息…”开头,但我认为很明显卢克已经回答了这个问题。2.我现在将添加此信息3。我不能接受。如果我认为信息值得这样做,我只回答一个已回答的问题。我对你的答案在这里没有问题,只是它不是问题的答案,我不明白为什么它没有解决提问者试图解决的问题,却被认为是正确的。这类似于有人问如何屏蔽面板,然后回答者解释当有人使用函数时html是如何修改的,而没有告诉他们调用哪个函数来完成它。@Reimius我想我理解,但你知道,你应该向塞巴问这个问题,我想只有在你评论他的一篇文章或向他发表讲话时,他才会被注意。@Reimius抱歉,我刚刚监督了LUKE的回答。这太复杂了,为什么这是公认的答案?@Reimius 1。我只想添加一些关于脏标志的附加信息。这就是为什么我以“注意”开始我的答案,我从来没有提到过这应该只是为了防止红色三角形。是的,这次我忘了以“作为补充信息…”开头,但我认为很明显卢克已经回答了这个问题。2.我现在将添加此信息3。我不能接受。如果我认为信息值得这样做,我只回答一个已回答的问题。我对你的答案在这里没有问题,只是它不是问题的答案,我不明白为什么它没有解决提问者试图解决的问题,却被认为是正确的。这类似于有人问如何屏蔽面板,然后回答者解释当有人使用函数时html是如何修改的,而没有告诉他们调用哪个函数来完成它。@Reimius我想我理解,但你知道,你应该问塞巴这个问题,我想只有在你评论他的一篇帖子或给他打电话时,他才会被注意到。@Reimius抱歉,我刚刚看到了卢克的回答