2014-09-12 74 views
0

我正在使用擴展庫中的導航器控件。我想使用默認樣式,其中只有選定的項目被突出顯示,其他所有項目都不突出顯示並顯示指針光標。出於某種原因,它正在將類「lotusSelected」應用於呈現爲列表項<li>的所有導航器節點。<xe:navigator>使用OneUI應用不正確的樣式2.1

我知道樹節點的「selected」屬性控制着這個。無論該屬性設置爲true,false還是無效,它都會執行相同的操作。我不想在這裏做任何事情,只是使用默認行爲。自定義CSS或主題中沒有任何內容可以覆蓋它。

這發生在所有瀏覽器上。使用Chrome工具,我可以看到刪除類會導致我想要的行爲。導航打開XPage並更改動態內容控件,這一切都可行。這用於應用程序佈局控件內部。

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" 
    xmlns:xe="http://www.ibm.com/xsp/coreex"> 

    <xe:navigator id="navigator1" expandable="false"> 
     <xe:this.treeNodes> 
      <xe:pageTreeNode label="Add New ATM" 
       page="/xpSupervisor.xsp" queryString="content=newATM"> 
      </xe:pageTreeNode> 
      <xe:pageTreeNode label="Update ATM Information" 
       page="/xpSupervisor.xsp" queryString="content=updateATM" 
       selected="false"> 
      </xe:pageTreeNode> 
      <xe:pageTreeNode label="One Time Settlement Amount Change" 
       page="/xpSupervisor.xsp" queryString="content=changeSettlementAmt" 
       selected="false"> 
      </xe:pageTreeNode> 
     </xe:this.treeNodes> 
    </xe:navigator></xp:view> 

enter image description here

UPDATE:這似乎是pageTreeNode和我創建的動態內容控制方式之間的一些衝突。它只會在這個Xpage上混亂。下面是該代碼:

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" 
    xmlns:xe="http://www.ibm.com/xsp/coreex" 
    xmlns:xc="http://www.ibm.com/xsp/custom"> 


    <xe:dynamicContent id="dynamicContent1" useHash="true" 
     defaultFacet="default"> 
     <xp:this.facets> 
      <xc:ccSupervisorHelp xp:key="default"></xc:ccSupervisorHelp> 
      <xc:ccNewATM xp:key="newATM"></xc:ccNewATM> 
      <xc:ccUpdateATM xp:key="updateATM"></xc:ccUpdateATM> 
      <xc:ccChangeSettlementAmt xp:key="changeSettlementAmt"></xc:ccChangeSettlementAmt> 
     </xp:this.facets> 
    </xe:dynamicContent> 
</xp:view> 

回答

1

如果我'右,所有節點被選擇,因爲所有的節點具有相同的頁頁=「/ xpSupervisor.xsp」爲目標。 因此,如果頁面xpSupervisor.xsp處於打開狀態,導航器會將節點呈現爲select。

+0

好的答案。這是真的,並使我調整了我的想法,最終導致我從使用PageTreeNode改變爲BasicLeafNode。看到我的答案,我希望能幫助別人避免我所經歷的事情。 – 2014-09-15 18:24:53

1

屬性selected只是一個布爾值,表示pageTreeNode是否被選中。請致電selection。該屬性與applicationLayout控件中的navigationPath一起使用。酒店selection可以採取正則表達式來確定選擇狀態。

+0

很好的答案,但我無法得到這個工作。 – 2014-09-15 18:22:42

0

儘管兩個很好的答案哪去了我近,我不能讓菜單使用pageTreeNode工作。解決方法是切換到使用basicLeafNode並使用submittedValue並在導航器的onItemClick事件中打開正確的頁面。我還在'selected'屬性中添加了代碼來計算選擇哪個菜單項。

我無法獲得context.getSubmittedValue()方法在selected屬性中工作。我通過將它設置爲事件中的sessionScope var來克服這個問題。 (viewScope沒有出於某種原因)

<xe:basicLeafNode label="Update ATM Information" submitValue="updateATM"> 
    <xe:this.selected><![CDATA[#{javascript:if(sessionScope.menuValue == "updateATM"){ 
    return true; 
} else { 
    return false; 
}}]]></xe:this.selected></xe:basicLeafNode> 

這是onItemClick打開了正確的鏈接代碼:

sessionScope.menuValue = context.getSubmittedValue(); 

if (sessionScope.menuValue == "newATM") { 
    context.redirectToPage("xpSupervisor.xsp?content=newATM"); 
} else... 

的擴展庫書的244頁的底部確認了這一問題沒有提供修復。即使我有這本書,希望這個可搜索的答案將幫助其他人避免我經歷的麻煩。