Ext Store Filter的實(shí)現(xiàn)和問(wèn)題
Store包含兩個(gè)數(shù)據(jù)緩存 - snapshot和data,grid,combo等控件的顯示全部基于data,而snapshot是數(shù)據(jù)的完整緩存,當(dāng)首次應(yīng)用過(guò)濾器時(shí),snapshot從data中備份數(shù)據(jù),當(dāng)應(yīng)用過(guò)濾器時(shí),filter從snapshot獲取一份完整的數(shù)據(jù),并在其中進(jìn)行過(guò)濾,過(guò)濾后的結(jié)果形成了data并傳遞給展示,及data總是過(guò)濾后的數(shù)據(jù),而snapshot總是完整的數(shù)據(jù),不過(guò)看名字讓人誤以為它們的作用正好相反。相應(yīng)地,當(dāng)進(jìn)行store的增刪改時(shí),要同時(shí)維護(hù)兩個(gè)緩存。
問(wèn)題
Store包含兩個(gè)增加Record的方法,即insert和add,其中的insert沒有更新snapshot所以當(dāng)重新應(yīng)用filter時(shí),即data被重新定義時(shí),在data中使用insert新增的記錄是無(wú)效的。
解決方法
用add不要用insert,如果用insert,記得把數(shù)據(jù)寫進(jìn)snapshot: store.snapshot.addAll(records)
@2008 楊一. 版權(quán)所有. 保留所有權(quán)利
posted on 2010-06-25 19:16 楊一 閱讀(1288) 評(píng)論(0) 編輯 收藏 所屬分類: Other Tech