2012-02-15 54 views
1

我正在使用ApplicationLayout控件(8.5.3 UP1)並添加了基本節點以顯示爲選項卡。我希望標籤運行JavaScript來設置單擊時的sessionScope變量。我在onClick中有一個sessionScope.put,但當點擊標籤時變量沒有正確設置。ApplicationLayout控件(extlib)中的TitleBar選項卡生成無效代碼

更糟的是,當我看頁面的源代碼,這是我看到的標籤:

<ul id="view:_id1:_id2:applicationLayout1_tb" class="lotusTabs lotusTabsIndented"> 

<li class="lotusTabs li"> 
    <div> 
    <a style="text-decoration:none">Ft. Pierce</a> 
    </div> 
</li> 

<li class="lotusTabs li"> 
    <div> 
    <a href="javascript:;" onclick="javascript:Ft. Pierce" style="text-decoration:none">Naperville</a> 
    </div> 
</li> 

<li class="lotusTabs li"> 
    <div> 
    <a href="javascript:;" onclick="javascript:Naperville" style="text-decoration:none">Chicago</a> 
    </div> 
</li> 
</ul> 

注意如何第一個裏沒有一個href或的onclick代碼和其他兩個立條目具有看似不正確的href和onclick參數(並且onclick與標籤不匹配)。

從我在控件中可以看到的,這應該工作。如果節點的href屬性中沒有任何內容,它應該執行onClick代碼。我很感激任何想法或想法得到這個工作。謝謝。

回答

4

basicTreeNode上的onClick事件用於運行clientSide javascript。您將無法放置任何SSJS,例如您所描述的sessionScope.put。

要做你需要的東西,你需要使用basicTreeNode的submitValue屬性,然後添加你的腳本來將sessionScope設置爲applicationLayout控件的onItemClick事件。

<xe:applicationLayout id="applicationLayout1"> 
     <xe:this.configuration> 
      <xe:oneuiApplication> 
       <xe:this.titleBarTabs> 
        <xe:basicLeafNode label="Tab 1" submitValue="tab1" /> 
        <xe:basicLeafNode label="Tab 2" submitValue="tab2" /> 
        <xe:basicLeafNode label="Tab 3" submitValue="tab3" /> 
       </xe:this.titleBarTabs> 
      </xe:oneuiApplication> 
     </xe:this.configuration> 
     <xp:eventHandler event="onItemClick" submit="true" refreshMode="complete"> 
      <xe:this.action><![CDATA[#{javascript:sessionScope.put("varName",context.getSubmittedValue())}]]></xe:this.action> 
     </xp:eventHandler> 
    </xe:applicationLayout> 
+0

謝謝,Declan,工作!一個參考澄清:sessionScope.put需要context.getSubmittedValue()之前的變量名稱。 – 2012-02-15 20:24:29

+0

你的正確,我輸入它太快,忘了它。我會更新答案,以免造成混淆 – 2012-02-15 21:00:00