對於wicket我很新,我試圖創建一個包含有關郵件列表信息的簡單Wicket樹。此郵件列表與某封信有關。當初始化一棵樹時展開Wickets TreeTable節點
- MailingListDto 1
- 用戶1
- 用戶2
- MailingListDto 2
- 用戶3
- 用戶4
如果我們正在編輯一封現有的信函,那麼與該信函相關的郵件列表將被提取into mailingListCollection
,並且樹上相應的節點應該被選中並展開。出於某種原因,我似乎沒有得到這個工作。
所選和展開的節點不會在UI中顯示爲已選中或展開,但如果以編程方式遍歷選定節點(例如在onAfterRender()
中)並記錄所選值和展開值,則會展開並選擇節點。
tree = new TreeTable("treeTable", treeModel, treeColumns) { @Override public void onBeforeRender() { super.onBeforeRender(); if (!mailingListCollection.isEmpty()) { for (MailingListDto mailingList : mailingListCollection) { tree.getTreeState().expandNode(mailingList); tree.getTreeState().selectNode(mailingList, true); } } tree.updateTree(); } @Override protected void onAfterRender() { super.onAfterRender(); if (LOG.isDebugEnabled()) { LOG.debug("onAfterRender: " + tree.getTreeState().getSelectedNodes().size()); for (Object obj : tree.getTreeState().getSelectedNodes()) { LOG.debug(tree.getTreeState().isNodeSelected(obj) + " " + tree.getTreeState().isNodeExpanded(obj)); } } } }; tree.setRootLess(true); tree.getTreeState().setAllowSelectMultiple(true); add(tree);
你可能想把它帶到郵件列表 - 我從來沒有使用樹組件,很少有檢票用戶似乎使用SO。 – ireddick 2010-07-28 21:04:39
有沒有想過這個解決方案之後?我有類似的問題。 – psicopoo 2011-04-27 13:44:13
由於我們沒有找到合適的TreeTable解決方案,因此我們最終採用了完全不同的方法。 – Sand 2011-05-17 05:49:36