gpt4 book ai didi

javascript - 带有空值的 ExtJS JSON 记录

转载 作者:行者123 更新时间:2023-11-28 16:32:46 25 4
gpt4 key购买 nike

如果我返回的 JSON 属性包含 null 值,如何强制网格识别值已从 null 更改并将其标记为 isDirty?

{
"prop1": null,
"prop2": "",
"prop3": "my val"
}

用户第一次在 Ext.grid.EditorGridPanel 中编辑 prop1 单元格时,它不会被标记为脏,但是一旦第二次编辑它就会被标记为脏。空字符串在第一次编辑时可以正常工作。

在进一步调试中,似乎使用 record.set() (其中 JSON 属性具有空值)会在设置记录数据之前返回

set : function(name, value){
var encode = Ext.isPrimitive(value) ? String : Ext.encode;
if(encode(this.data[name]) == encode(value)) {
return; //if null it always returns here
}

更新:

解决方法是为记录的数据属性设置原始值:

data = segments[i]; //my JSON 
recMetadata = Ext.data.Record.create(store.fields.items);
r = new recMetadata({}, data.MyID); //blank record with ID
for (j in data) {
//r.set(j, data[j]); //does not set the data property if null
r.data[j] = data[j]; //set raw value and all is fine with isDirty etc.
}
store.insert(0, r);

最佳答案

您可以在每次后期编辑时手动将记录设置为脏记录,以确保...

在您的 EditorGridPanel 配置中:

listeners: {
'afteredit': function(e) {
if(e.value != e.originalValue) {
e.record.markDirty();
}
}
}

关于javascript - 带有空值的 ExtJS JSON 记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5258412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com