带有嵌套重复控件的Xpages工具栏-@DbLookup无法访问父重复控件的var值
我有一个工具栏,可以让用户选择汽车的品牌。使用repeat控件中的var request scope变量完成make。但是,当我尝试使用@DbLookup访问相应的值时,它无法返回任何内容。下面是代码片段:带有嵌套重复控件的Xpages工具栏-@DbLookup无法访问父重复控件的var值,xpages,xpages-extlib,Xpages,Xpages Extlib,我有一个工具栏,可以让用户选择汽车的品牌。使用repeat控件中的var request scope变量完成make。但是,当我尝试使用@DbLookup访问相应的值时,它无法返回任何内容。下面是代码片段: <xe:toolbar id="toolbar1" showButtonLabels="true"> <xe:this.treeNodes> <xe:pageTreeNode label="Make"> <xe:this.ch
<xe:toolbar id="toolbar1" showButtonLabels="true">
<xe:this.treeNodes>
<xe:pageTreeNode label="Make">
<xe:this.children>
<xe:repeatTreeNode indexVar="index"
loaded="true" var="varValue">
<xe:this.value>
<![CDATA[#{javascript:@Unique(@DbColumn("", "parts list", 1))}]]>
</xe:this.value>
<xe:this.children>
<xe:pageTreeNode
label="#{javascript:varValue}">
<xe:this.children>
<xe:repeatTreeNode
indexVar="index1" loaded="true" var="varValue1">
<xe:this.value>
<![CDATA[#{javascript:@Unique(@DbLookup("", "parts list", requestScope.varValue, 2))}]]>
</xe:this.value>
<xe:this.children>
<xe:pageTreeNode
label="#{javascript:requestScope.varValue1}">
</xe:pageTreeNode>
</xe:this.children>
</xe:repeatTreeNode>
</xe:this.children>
</xe:pageTreeNode>
</xe:this.children>
</xe:repeatTreeNode>
</xe:this.children>
</xe:pageTreeNode>
<xe:pageTreeNode label="Vehicle">
</xe:pageTreeNode>
</xe:this.treeNodes>
<xp:eventHandler event="onItemClick" submit="true"
refreshMode="partial" refreshId="toolbar1">
</xp:eventHandler>
</xe:toolbar>
谁能告诉我哪里出了问题?或者如何访问第一个列表中所选项目的varValue变量
下面链接中的工具栏选项卡下有我想要的示例:
另外,我对xpages还是新手。谢谢大家。工具栏作为单个组件呈现到XPages组件树中。因此,很难掌握任何价值观。当您在不同的上下文中呈现repeat控件时,事情会非常顺利。对于工具栏,您可以使用下面这样一个难看的hack,或者使用repeats在手动控件中渲染特定的工具栏。我得到了这个样本:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex">
<xp:this.afterPageLoad><![CDATA[#{javascript:var result = new java.util.LinkedList();
var allMakes = @Unique(@DbColumn("", "parts list", 1));
for (var makeIndex in allMakes) {
var curModelName = allMakes[makeIndex];
var someModels = @Unique(@DbLookup("", "parts list", curModelName, 2));
if (someModels != null) {
result.offer(someModels);
result.offer(someModels);
}
}
viewScope.ModelsAndMakes = result; }]]></xp:this.afterPageLoad>
<xe:toolbar id="toolbar1" showButtonLabels="true">
<xe:this.treeNodes>
<xe:pageTreeNode label="Make">
<xe:this.children>
<xe:repeatTreeNode indexVar="indexMakes" loaded="true"
var="varMakes">
<xe:this.children>
<xe:pageTreeNode label="#{varMakes}">
<xe:this.children>
<xe:repeatTreeNode indexVar="indexModel"
loaded="true" var="varModel">
<xe:this.children>
<xe:pageTreeNode label="#{varModel}">
</xe:pageTreeNode>
</xe:this.children>
<xe:this.value><![CDATA[#{javascript:if (view.isRenderingPhase()) {
return viewScope.ModelsAndMakes.poll();
};}]]></xe:this.value>
</xe:repeatTreeNode>
<xe:basicLeafNode label="Fixed ende after">
</xe:basicLeafNode>
</xe:this.children>
</xe:pageTreeNode>
</xe:this.children>
<xe:this.value><![CDATA[#{javascript:@Unique(@DbColumn("", "parts list", 1))}]]></xe:this.value>
</xe:repeatTreeNode>
</xe:this.children>
</xe:pageTreeNode>
</xe:this.treeNodes>
<xp:eventHandler event="onItemClick" submit="true"
refreshMode="partial" refreshId="toolbar1">
</xp:eventHandler>
</xe:toolbar>
<ol>
<xp:repeat id="repeat1" rows="30" var="outerList" indexVar="outerIndex">
<xp:this.value><![CDATA[#{javascript:@Unique(@DbColumn("", "parts list", 1))}]]></xp:this.value>
<li>
<xp:text escape="true" id="computedField1" tagName="h3"
value="#{outerList}">
</xp:text>
<ol>
<xp:repeat id="repeat2" rows="30" var="innerList">
<xe:this.value>
<![CDATA[#{javascript:@Unique(@DbLookup("", "parts list", outerList, 2))}]]>
</xe:this.value>
<li>
<xp:text escape="true" id="computedField2" value="#{innerList}">
</xp:text>
</li>
</xp:repeat>
</ol>
</li>
</xp:repeat>
</ol>
</xp:view>
result.offer中的两个条目是必需的,因为生命周期轮询两次。正如我所说:丑陋的黑客让我们知道它是怎么回事。你是否尝试使用不同的名称。您有一个重复变量和一个同名的作用域变量。非常感谢你的帮助。不幸的是,这个实现在这个阶段是不可行的,所以我采用了另一种方法:创建组合框来显示这些值。再次感谢您的帮助。我真的很感激。无论如何,我不建议在应用程序中使用我标记为“丑陋的黑客”的东西。正如您在示例中所看到的,正常重复控件的工作方式与您预期的相同。当您检查OneUI时,您可以像TreeNode一样呈现菜单。。顺便说一句,感谢的标准是向上投票和/或接受回答