我创建了一个包含许多basicLeafNodes的工具栏。在style属性的某些JS中,我想获得basicLeafNode的标签值。我试过这个。标签,但抛出错误。如果我可以获得标签值,那么我可以编写一个非常通用的代码块,对于toolBar中的每个叶子都是相同的。哪个更容易维护和扩展。 这是一个很长的方式,从一个节目塞子,但它会很整洁,
答案 0 :(得分:2)
你不能这样做,因为this
代表工具栏对象,而不是叶子节点(它是一个巨大的对象)。
但是,您可以使用repeatTreeNode
和一些Javascript魔法(或者最好是托管bean),可以计算所有值,并且将来可以更轻松地进行管理。
<xe:toolbar id="toolbar1">
<xe:this.treeNodes>
<xe:repeatTreeNode var="item">
<xe:this.value><![CDATA[#{javascript:
[{
"label": "Open",
"href": "http://www.openntf.org"
},
{
"label": "Search",
"href": "http://www.google.com"
}]
}]]></xe:this.value>
<xe:this.children>
<xe:basicLeafNode href="#{item.href}" label="#{item.label}">
<xe:this.style><![CDATA[#{javascript:"color:"+(item.label=="Open"?"blue":"red")}]]></xe:this.style>
</xe:basicLeafNode>
</xe:this.children>
</xe:repeatTreeNode>
</xe:this.treeNodes>
</xe:toolbar>
我希望这会有所帮助......