2013-11-15 17 views
0

我已經創建了一個帶有多個basicLeafNode的工具欄。在樣式屬性中的一些JS中,我想獲取basicLeafNode的標籤值。我試過這個標籤,但是拋出錯誤。如果我能得到標籤值,那麼我可以編寫一個非常通用的代碼塊,這對於toolBar中的每個葉片都是相同的。哪個更容易維護和擴展。 這是一個很長的路線,但它會很整齊,但它會很整齊,獲取工具欄中leafNode的標籤值

+0

哪裏的代碼將是?也許你需要在調用「label」之前獲得「this」的父項。 –

回答

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> 

我希望這有助於...

+0

可能更理想的是計算'styleClass'而不是'style',所以如果稍後改變想法應用什麼特定視覺屬性,您可以簡單地更新樣式表,而不是對您的樣式做進一步的修改XPage代碼。 :) –

+0

謝謝Serdar會研究這樣做。如果它是選定的節點,我已經在計算styleClass檢查。 –