簡體   English   中英

Dojo DataGrid如何通知視圖服務器上的數據已更改?

[英]Dojo DataGrid how to notify view that data has changed on the server?

如何通知dojox.grid.DataGrid數據已在商店/服務器上更改?

我正在將dojox.data.QueryReadStore與DataGrid一起使用。

例如,我希望DataGrid從服務器重新加載我知道已更改的一行。

感謝幫助

取決於是否要緩存,答案會有所不同。 最有可能您最終會通過查詢來執行類似訪存的操作:“?id =” + yourId +“&time =” + new Date()。getTime()原因緩存的商品在商店的使用壽命中幾乎被緩存了。 強制在服務器上重新加載的唯一方法是使用其他查詢(至少JsonRestStore就是這種情況)。 也許QueryReadStore更聰明,並且在使用某些功能時可以從服務器系統地重新加載。

好舊的日期技巧,以強制重新加載:)

因此,如果我對您的問題理解正確,那么您想將服務器狀態更改推送給客戶端,對嗎? 因此,服務器上的一行已更改,您希望在沒有任何用戶干預的情況下將更改自動反映到datagrid上(datagrid應該重新加載更新的數據)

這將需要輪詢或服務器端推送機制(例如cometd或html5 websocket)

另外,您是否需要使用queryreadstore(QRS)或更簡單的itemfilewritestore(IFWS)來做? 我問的原因是QRS對於分頁和延遲加載等有用,但是它增加了復雜性,尤其是對於您的用例,因為更改的行可能不在用戶當前視圖中(假設您要顯示更改的行) 。

如果可以使用qn itemfilewritestore,則一旦為此服務器端更改調用了JS函數(使用上述機制之一),只需使用此數據值更新存儲-dojo datagrid將自動更新(dojo會小心處理)存儲數據更改時更新呈現的數據網格的功能)。 有關如何操作存儲的示例,請參見在Dojo datagrid中添加一行

如果必須使用QRS,則有兩種用例,一種是插入的行在當前可見的數據集中(在這種情況下,您需要重新發出查詢),另一種是在新的行在當前顯示的數據集之外(在這種情況下,用戶的分頁操作將自動反映行中的更改)

希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM