如果我有一個JSON返回一個屬性的空值,我如何強制網格識別值已經從null更改並將其標記爲isDirty?ExtJS空值的JSON記錄
{
"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);
使用非常好的工作(添加網格視圖的刷新以顯示修改後的記錄)。我發現了一種解決記錄對象中缺少字段的潛在問題的方法。 – geographika 2011-03-10 15:04:56