Question

J'ai créé une barre d'outils avec un certain nombre de basicLeafNodes.Dans certains JS dans la propriété style, j'aimerais obtenir la valeur de l'étiquette pour le basicLeafNode.J'ai essayé this.label mais cela génère une erreur.Si je pouvais obtenir la valeur de l'étiquette, je pourrais alors écrire un bloc de code très généralisé qui serait le même pour chaque feuille de la barre d'outils.Ce qui serait plus facile à maintenir et à étendre.C'est loin d'être un spectacle mais ce serait bien,

Était-ce utile?

La solution

Tu ne peux pas faire ça, parce que this représente l'objet de la barre d'outils, pas le nœud feuille (c'est un seul objet géant).

Cependant, vous pouvez utiliser repeatTreeNode et un peu de magie Javascript (ou de préférence un bean géré), toutes les valeurs peuvent être calculées et la gestion pourrait être plus facile à l'avenir.

    <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>

J'espère que ça aide...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top