Xpages 使用重复控件和自定义控件的递归

Xpages 使用重复控件和自定义控件的递归,xpages,Xpages,我正在尝试在X页面上生成类别和子类别的分层列表。到目前为止,我尝试了两种方法: 第一个有效,基于Jesse Gallagher的代码,使用xe:outline控件以我想要的顺序输出列表。但是,我希望能够为每个条目添加额外的功能和样式(例如,编辑和删除链接),但无法解决如何在outline控件中呈现自定义控件 第二种方法是尝试利用嵌套重复和自定义控件来生成列表,但就我的一生而言,我无法完成这项工作,我不知道这是因为它不起作用还是因为我缺少一些基本的东西。XPage的基本代码是: 类别 自

我正在尝试在X页面上生成类别和子类别的分层列表。到目前为止,我尝试了两种方法:

第一个有效,基于Jesse Gallagher的代码,使用xe:outline控件以我想要的顺序输出列表。但是,我希望能够为每个条目添加额外的功能和样式(例如,编辑和删除链接),但无法解决如何在outline控件中呈现自定义控件

第二种方法是尝试利用嵌套重复和自定义控件来生成列表,但就我的一生而言,我无法完成这项工作,我不知道这是因为它不起作用还是因为我缺少一些基本的东西。XPage的基本代码是:


类别

自定义控件(ccCategoryList)的代码为:


]]>
]]>
因此,我的相关问题是:

  • 使用bean节点在xe:outline控件中是否仍然可以输出自定义控件
  • 我可以像使用bean节点一样使用repeats和自定义控件从视图递归输出数据吗
  • 有没有我忽略的更好的替代方法(例如,在bean中使用Java集合和repeat控件?)
  • 谢谢

    1)有一种方法可以将您自己的CustomNode添加到该外观的轮廓中:

    com.ibm.xsp.extlib.tree.ITreeNode;
    com.ibm.xsp.extlib.tree.complex.ComplexLeafTreeNode;
    com.ibm.xsp.extlib.tree.impl.TreeNodeWrapper;
    
    2) 很抱歉,我从未尝试将递归xpage元素构建为自定义控件,但我不推荐它

    3) 您可以使用
    这两个选项来确定
    视图条目
    /行是否为类别。并为您提供了将链接、按钮或其他控件添加到行中的可能性

    或者另一种获取所需内容的方法是使用DojoTreeView构建大纲/树状视图: 有一种方法可以将您自己的CustomNode添加到该外观的轮廓中:

    com.ibm.xsp.extlib.tree.ITreeNode;
    com.ibm.xsp.extlib.tree.complex.ComplexLeafTreeNode;
    com.ibm.xsp.extlib.tree.impl.TreeNodeWrapper;
    
    2) 很抱歉,我从未尝试将递归xpage元素构建为自定义控件,但我不推荐它

    3) 您可以使用
    这两个选项来确定
    视图条目
    /行是否为类别。并为您提供了将链接、按钮或其他控件添加到行中的可能性

    或者另一种获取所需内容的方法是使用DojoTreeView构建大纲/树状视图:

    谢谢你的想法,迈克尔。我得出的结论是,我可能必须建立自己的控制,但只有在没有任何东西能够满足我的要求时,才能作为最后手段。您是否尝试过
    ?正如我所见,您使用视图作为数据源,为什么不使用viewControl来显示您的数据。在不小心提前提交之前的评论后,我试图重新编辑它!:我曾经考虑过ForuVIEW,但目前类别之间的关系不是保持在传统的注释父子层次中,而是更像是通过连接连接的多个SQL表——非常像杰西的ORG图表视图。但是我还没有完全排除在必要时返回使用视图的可能性。(这是其中的一个场景,我完全知道如何在PHP和mySQL中实现这一点,并且相信我也应该能够在XPages中实现这一点,如果这有意义的话。)谢谢你的想法,Michael。我得出的结论是,我可能必须构建自己的控件,但只有在没有任何控件能够实现我的目标的情况下才能作为最后手段。你是否尝试过
    ?正如我所见,你使用视图作为数据源,为什么不使用viewControl来显示数据。我正在尝试重新编辑以前的控件在不小心提前提交后发表评论!:我曾经考虑过ForuVIEW,但目前类别之间的关系不是保持在传统的注释父子层次中,而是更像是通过连接连接的多个SQL表——非常像杰西的ORG图表视图。但是我还没有完全排除在必要时返回使用视图的可能性。(这是其中的一个场景,我完全知道如何在PHP和mySQL中实现这一点,并且相信我也应该能够在XPages中实现这一点,如果这有意义的话。)