我在Vaadin中使用PagedFilterTable來管理分頁。當加載默認的頁面,我已是這樣的 - 我包括一些字段排序:如何重新加載Vaadin父視圖沒有表重置排序順序
if(this.sortField != null){
table.setSortContainerPropertyId(this.sortField);
table.setColumnWidth(this.sortField, 80);
table.setSortAscending(true);
table.sort();
}
所以當這種情況發生的頁面加載,這是罰款。在我提交新條目(條目正在通過新的彈出窗口添加)之後,表格會獲取新行,但在彈出關閉後,表格會在視圖中丟失它的排序順序,因此排序不再受到保護。問題是我不知道如何從該彈出窗口到達該表格元素並再次設置排序。爲什麼桌子正在更新,我看到它,並排序doesen't?問題是更大的,因爲我有兩個窗口在單獨的文件,在我看來,我不能容易地抓住表格元素,而不修改邏輯,因爲我在另一個窗口。
如何重新加載表以便排序保持不變?
我成功做到這一點後提交:
getUI().getPage().reload();
有了它的工作原理,但我很不滿意。在該行代碼之後,所有事情都會重新加載(意味着所有查詢都會再次執行)。結果是好的,但我不想在提交整個頁面重新加載後發生(也因爲我的其他按鈕沒有重新加載)。所以我只想在父窗口重新加載表格。
如何從外部窗口抓取表格對象,例如將其設置爲即時正確的更改?
像這樣的事情,我想被寫入需求:
getParent().getUI().setImmediate(true);
?
或者更好的問題,如何通過新窗口插入新條目後如何管理表排序仍然相同?
Page reload做的太多了。通常你只需將新項目添加到容器中,然後表格會自動通知新數據並顯示此信息 –
真的不知道如何做到這一點。 – DarioBB
如何填充表格? (通常容器處理這個) –