Domanda

Ho creato una barra degli strumenti con un numero di baselefnodi.In alcuni JS nella proprietà di stile vorrei ottenere il valore dell'etichetta per il baselefnode.Ho provato questo .Label ma che lanci ed errori.Se potessi ottenere il valore dell'etichetta, allora potrei scrivere un blocco di codice molto generalizzato che sarebbe lo stesso per ogni foglia nella barra degli strumenti.Che sarebbe più facile da mantenere ed estendere. Questa è una lunga strada da un tappo di spettacolo, ma sarebbe pulito,

È stato utile?

Soluzione

Non è possibile farlo, poiché this rappresenta l'oggetto barra degli strumenti, non il nodo foglia (è tutto un oggetto gigante).

Tuttavia, è possibile utilizzare repeatTreeNode e alcuni JavaScript Magic (o preferibilmente un bean gestito), tutti i valori possono essere calcolati e la gestione potrebbe essere più facile per il futuro.

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

Spero che questo aiuti ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top