我建立的列表/網格控制在Flex
應用程序,並在.NET
Web應用程序使用它。爲了使長篇小說變得簡單,我從序列化對象的web服務中獲取XML。我對頁面上有多少內容有限制。我採用了數據網格並將其製作成頁面,對頁面進行排序,並處理一些基本的過濾。刪除/在E4X更換一個節點(AS3 - 的Flex)
在問候傳呼我使用鍵控頁面上的字典和存儲該頁面的XML。通過這種方式,無論用戶何時回到我保存到本字典的頁面,我都可以從本地內存中獲取XML,而不是擊中Web服務。基本上,我將從每次調用中檢索到的數據緩存到webservice以獲取一頁數據。
有幾件事情可以過期我的緩存。過濾和分類是主要原因。但是,用戶可以通過打開編輯器來編輯網格中的一行數據。他們編輯的數據可能會導致行中顯示的數據過時。我可以輕鬆地訪問web服務並獲取整個頁面的數據,但由於頁面大小是在運行時設置的,我可能正在查看大量記錄以進行檢索。
所以現在讓我去,我遇到的問題的心臟。爲了防止重新獲得整個頁面的數據,我調用web服務來請求完整更新的記錄(編輯器處理保存其數據)。
由於我使用我需要序列化他們的服務器上的XML(這也已經被處理爲我們的軟件的其他部分)的自定義對象。所有數據都通過e4x中的XML處理。 Dictionary中的緩存存儲爲XMLList。
現在讓我告訴你我的代碼...
var idOfReplacee:String = this._WebService.GetSingleModelXml.lastResult.*[0].*[0][email protected];
var xmlToReplace:XMLList = this._DataPages[this._Options.PageIndex].Data.(@Id == idOfReplacee);
if(xmlToReplace.length() > 0)
{
delete (this._DataPages[this._Options.PageIndex].Data.(@Id == idOfReplacee)[0]);
this._DataPages[this._Options.PageIndex].Data += this._WebService.GetSingleModelXml.lastResult.*[0].*[0];
}
基本上,我得到了我想要替換節點的ID。然後我在緩存的Data屬性中找到它(XMLList
)。我確定它存在,因爲第二行的過濾器返回XMLList
。
我遇到的問題是刪除線。我不能讓該行從列表中刪除該節點。刪除行後面的行起作用。我已將該節點添加到列表中。
如何替換或刪除該節點(即從緩存的.Data屬性中的filter語句中找到的節點)?
希望我的所有變量的下劃線時,這是貼不留逃脫!否則this._ == this
._