我有一個包含表單不同部分的選項卡式面板。在一節中,用戶可以將子文檔添加到當前打開的文檔中。在第二部分中,給出了一個列表框,其中的選項是通過查看所有子文檔的視圖(通過當前文檔的ID進行過濾)動態生成的(通過@DbLookup)。此功能全部正常工作,但是,動態列表框選項存在問題。查看正在緩存/無法刷新的數據
當用戶添加一個新的子文檔,然後切換到下一個選項卡時,不會使用此新文檔更新列表框。如果他們保存/重新編輯主文檔或刷新頁面,則不會發生任何變化,用戶必須在返回到原始文件之前加載另一個XPage才能更新列表框。我試圖通過對頁面進行全面更新來解決這個問題,在@DBLookup調用中使用session.evaluate和「NoCache」,或者調用database.getView(「My view」)。refresh(),但沒有運氣。
還有一個類似的問題,我有一個重複控制,它使用子文檔視圖(再次通過主文檔ID過濾)作爲數據源。當用戶使用按鈕添加子文檔時,它會部分刷新重複 - 但不會顯示新的子文檔,直到頁面再次刷新(或離開頁面並返回)。
有沒有關於JSF生命週期/視圖數據緩存方式的重要信息?
你的記憶力很好,朱利安。 :)我只會建議兩個更改。在'nc'賦值中,添加第二個參數'true'來強制完全匹配,並向'while'添加另一行:'ve = nc.getNextEntry(ve);'如果沒有這個額外的操作,'while '永遠不會退出。 ;) –
所以真的!尷尬,我忘了.getNextEntry()。這樣的事情永遠不會發生(但我敢打賭它發生在我們所有人身上:-))。 我修復了代碼。感謝您的更正:-) –
事實上,它發生在我們所有人身上。至少,這發生在我身上。 :) –