初始化树时扩展Wickets TreeTable节点

我是wicket的新手,我正在尝试创建一个简单的wicket树,其中包含有关邮件列表的信息。此邮件列表与某个字母有关。 MailingListDto 1 用户1 用户2 MailingListDto 2 用户3 用户4 如果我们正在编辑现有的字母,那么与该字母相关的邮件列表将被取出,并且应该选择和扩展树上的相应节点。出于某种原因,我似乎没有得到这个工作。 选定和扩展的节点在UI中不显示为选中状态,也不显示,但如果我以编程方式查看选定的节点(例如在
onAfterRender()
中)并记录选定的和扩展的值,则会扩展和选择节点。     tree = new TreeTable(“treeTable”,treeModel,treeColumns){             @覆盖             public void onBeforeRender(){                 super.onBeforeRender();                 if(!mailingListCollection.isEmpty()){                     for(MailingListDto mailingList:mailingListCollection){                         。tree.getTreeState()expandNode(邮件列表);                         tree.getTreeState()。selectNode(mailingList,true);                     }                 }                 tree.updateTree();             }             @覆盖             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(真);     tree.getTreeState()setAllowSelectMultiple(真)。     添加(树);     
已邀请:
要仅展开树的根节点:
Object rootObj = myTree.getModelObject().getRoot();
myTree.getTreeState().expandNode(rootObj);
要扩展根节点的第一个子节点,请将以下行添加到前一个节点:
myTree.getTreeState().expandNode(myTree.getModelObject().getChild(rootObj, 0));
请注意,您必须展开“目标”节点的所有父节点,否则在屏幕上将由于折叠的父节点而隐藏目标节点。     
检票口1.5.10 检票口6 看一下源代码。在类FooExpansion.java中是一个方法expandAll()。 FooExpansion.java用于私有类FooExpansionModel.java用于AdvancedTreePage.java。 因此,在初始化树(在AdvancedTreePage.java中)时,一个简单的解决方案可能是: FooExansionModel model = new FooExpansionModell() tree = createTree(provider,model); ((FooExpansion)model.getObject())expandAll();     

要回复问题请先登录注册