Dynamic XPages:动态填充导航器控件

Dynamic XPages:动态填充导航器控件,dynamic,view,xpages,navigator,Dynamic,View,Xpages,Navigator,我需要在导航器控件的数据库中创建可用视图的链接。我没有找到该控件的任何计算公式区域。就像我们对combobox使用代码一样: var v = database.getViews(); var a = [] for(var i=0; i<v.size(); i++) { a[i] = v[i].getName() } return a var v=database.getViews(); 变量a=[] 对于(var i=0;i,您可以使用中的为数据库中的每个视图创建导航条目: 此

我需要在导航器控件的数据库中创建可用视图的链接。我没有找到该控件的任何计算公式区域。就像我们对combobox使用代码一样:

var v = database.getViews();
var a = []
for(var i=0; i<v.size(); i++) {
   a[i] = v[i].getName()
}
return a
var v=database.getViews();
变量a=[]

对于(var i=0;i,您可以使用
中的
为数据库中的每个视图创建导航条目:


此代码将为数据库中的每个视图生成内部导航。您可以使用
中的变量
crrView
获取循环中
数据库.getViews()
返回的向量的当前元素


您还可以使用其他元素,然后使用
中的
选择NavigationItems控件窗口中的RepeatNode,然后单击add Child。

当您说数据库中可用视图的链接时。您指的是指向每个xPage的链接,显示一个视图,还是仅针对数据库中每个视图的一个条目,指向美国一个Xpage显示数据库中所有可用的视图[视图名称]。谢谢Michael Saiz!你的代码对我来说很有用。还有一件事,我在childnode的SELECTED属性中添加了下面的代码,但它不起作用:if(viewScope.viewName==context.getSubmittedValue()){true;}else{false}当我在Navigator控件中单击view name时,它会将值传递给viewScope变量(viewName)。在部分刷新时,我的动态视图面板会显示此视图。所有这些都工作正常,但在我的Navigator控件上没有标识(选中)哪个视图在动态面板上处于活动状态。将以下代码添加到所选字段:
selected=“#{javascript:crrView.getName().equals(context.getSubmittedValue());
如果希望在默认情况下选择其中一项,可以添加类似if(context.getSubbmittedValue==null)的内容。。。
<xe:navigator id="outline" expandable="true">
    <xe:this.treeNodes>
    <xe:repeatTreeNode loaded="true" indexVar="index" var="crrView" value="#{javascript:return database.getViews();}">
        <xe:this.children>
            <xe:basicLeafNode label="#{javascript:crrView.getName();}" loaded="true">
            </xe:basicLeafNode>
        </xe:this.children>
    </xe:repeatTreeNode>
</xe:this.treeNodes>
</xe:navigator>