我有第一个重复控件,可以从所选主产品组中查找不同类型产品的名称和图片。 在第一次重复控制中,我有另一个重复,它找到第一次重复的每种产品类型的每一篇文章,库存和描述。在第二次重复中,我有一个按钮来订购特定的文章。 奇怪的是在按钮的标签我可以把文章编号,但在onclick事件我无法得到正确的文章编号。 来自第一个重复的数据来自多米诺骨牌服务器,并放在一个视图范围数组中。第二个重复控件从iseries服务器获取它的数据,并且也放在一个viewcope数组中,以便将eveything放入表中。 代码:
`<xp:repeat id="repeat3" rows="30" value="#{viewScope.lijst}"
var="hoofdlijn" indexVar="index1">
<xp:text escape="true" id="produktnaam">
<xp:this.value><![CDATA[#{javascript:hoofdlijn[0];}]]></xp:this.value>
</xp:text>
<xp:this.value><![CDATA[#{javascript:hoofdlijn[1];}]]></xp:this.value>
</xp:text>
` 然后我有一个计算字段,它从给定行的iseries获取它的数据,并将它的数据放入另一个viewcope数组:“producten1” 然后是第二次重复以显示该视图范围的所有行:
<xp:repeat id="repeat5" rows="30"
value="#{viewScope.producten1}" var="dezelijn2">
<xp:text escape="true" id="computedField42">
<xp:this.value><![CDATA[#{javascript:dezelijn4[4];}]]></xp:this.value><!-- this works fine -->
</xp:text><xp:button id="button3" styleClass="btn btn-xs btn-primary">
<xp:this.value><![CDATA[#{javascript:"Bestel "+dezelijn4[0]}]]><!-- this gives the correct value for dezelijn4 -->
</xp:this.value>
<xp:eventHandler event="onclick" submit="true" refreshMode="partial" execMode="partial" refreshId="menuPanel">
<xp:this.action>
<![CDATA[#{javascript:if
(sessionScope.containsKey[("besteld")]){
sessionScope.besteld.push ([dezelijn4[0],"1"]);
}
else {
sessionScope.besteld = new Array();
sessionScope.besteld.push ([dezelijn4[0],"1"]);
}
}]]></xp:this.action><!-- gives a wrong value for dezelijn4 -->
</xp:eventHandler>
</xp:button>
</xp:repeat>
</xp:repeat>
按钮的标签显示正确的商品编号(dezelijn4 [0])。 onclick事件中的文章编号似乎总是最后一个产品类型的最后一篇文章编号。
如何在我的onclick事件中获得正确的文章编号?
答案 0 :(得分:0)
在你的第二块代码中,你的repeat var是dezelijn2,但是repeat中的代码是指dezelijn4。也许这是一个复制/粘贴错误,你引用了错误的变量。