【问题标题】:rich:tree -- unable to generate leaves dynamically?rich:tree -- 无法动态生成叶子?
【发布时间】:2011-02-25 17:02:21
【问题描述】:

我在处理动态生成的树时遇到了一些麻烦,即从数据库中读取叶子的树。

在我的应用程序中,我显示了问题列表(在丰富的数据表中)。当用户点击一个问题时,会显示一个包含与该问题相关的照片名称的树。即使从数据库中正确读取了与所选问题相关的照片,树的叶子也只包含我在开始时设置的默认测试值。

相关sn-ps:

树包含在一个表单中,它看起来像这样:

<rich:tree style="width:300px" 
    nodeSelectListener="#{treeBean.processSelection}"
    reRender="selectedNode" 
    ajaxSubmitSelection="true" 
    switchType="server" 
    value="#{treeBean.treeNode}">
</rich:tree>

在bean中我有获取treeNode的方法:public TreeNode getTreeNode()

我已经调试过了,但我不明白它是如何工作的。在 getTreeNode() 的返回和 Rich:tree 中的显示之间,treeNode 的值是否发生了其他变化? 我在getTreeNode()返回之前打印出treeNode的值,是正确的,但是显示的不是打印出来的值。

谁能解释为什么会发生这种情况和/或它在内部是如何工作的?谢谢!

编辑:经过更详细的调试后,我认为 getTreeNode() 方法仅在渲染将显示树的页面期间调用一次。每次显示树时,如何强制rich:tree 组件调用此方法?

【问题讨论】:

  • 点击问题时是否有reRender="treeId"
  • @morja:谢谢,与此同时,我已经通过得出相同的结论解决了这个问题——我重新渲染了树并且它工作了!
  • @morja 再次:我会投票赞成你的答案,但没有足够的代表点 - 抱歉!
  • 别担心,反正这不是一个正确的答案……但我可以给你一些分数,下次再来;-)

标签: java tree richfaces


【解决方案1】:

通过重新渲染树来解决。可能有更优雅的解决方案,但目前可行。

【讨论】:

    猜你喜欢
    • 2019-12-28
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多