我对检票口很陌生,我正在尝试创建一个简单的检票口树,其中包含有关邮件列表的信息。此邮件列表与某封信有关。
- 邮件列表Dto 1
- 用户 1
- 用户 2
- 邮件列表Dto 2
- 用户 3
- 用户 4
如果我们正在编辑一封现有的信件,则获取与该信件相关的邮件列表into mailingListCollection
与该信件相关的邮件列表,并应选择并展开树上的相应节点。出于某种原因,我似乎没有得到这个工作。
选定和展开的节点不会在 UI 中显示为选定或展开,但是如果我以编程方式浏览选定的节点,例如onAfterRender()
并记录选定和展开的值,则节点会被展开和选定。
tree = new TreeTable("treeTable", treeModel, treeColumns) { @覆盖 公共无效 onBeforeRender() { super.onBeforeRender(); if (!mailingListCollection.isEmpty()) { for (MailingListDto mailingList : mailingListCollection) { tree.getTreeState().expandNode(mailingList); tree.getTreeState().selectNode(mailingList, true); } } 树.updateTree(); } @覆盖 受保护的无效 onAfterRender() { super.onAfterRender(); 如果(LOG.isDebugEnabled()){ LOG.debug("onAfterRender:" + tree.getTreeState().getSelectedNodes().size()); for (对象 obj : tree.getTreeState().getSelectedNodes()) { LOG.debug(tree.getTreeState().isNodeSelected(obj) + " " + tree.getTreeState().isNodeExpanded(obj)); } } } }; tree.setRootLess(true); tree.getTreeState().setAllowSelectMultiple(true); 添加(树);