2015-03-26 2 views
0

У меня есть выпадающее меню. Я хочу использовать область, в которой пользователь хочет работать (да, я в Канаде!).XPages ApplicationLayout: получить выбранное значение выпадающего элемента в BannerLinks

Мне сложно определить, как получить значение, которое было нажато, так как я хочу поместить это значение в переменную области сеанса.

Код для ниспадающего построен таким образом на данный момент:

<xe:this.bannerUtilityLinks> 
     <xe:basicContainerNode 
      submitValue="provinceSwitch"> 
      <xe:this.children> 
       <xe:basicLeafNode label="Québec"></xe:basicLeafNode> 
       <xe:basicLeafNode label="Ontario" 
        submitValue="Ontario"> 
       </xe:basicLeafNode> 

       <xe:basicLeafNode label="Maritimes" 
        submitValue="Maritimes"> 
       </xe:basicLeafNode> 

       <xe:basicLeafNode label="West" 
        submitValue="West"> 
       </xe:basicLeafNode> 

      </xe:this.children> 
      <xe:this.label><![CDATA[#{javascript:if(!!sessionScope.province) { 
    sessionScope.province; 
    } else { 
    "Province"; 
    }}]]></xe:this.label> 
     </xe:basicContainerNode> 

<xe:basicLeafNode submitValue="langSwitch" 
          styleClass="lotusFirst"> 
          <xe:this.label> 
           <![CDATA[#{javascript:if(!!sessionScope.lang) { 
    if(sessionScope.lang=="FR") { 
     return "English"; 
    } else { 
     return "Français"; 
    } 
} else { 
    return "English"; 
}}]]> 
          </xe:this.label> 

         </xe:basicLeafNode> 

    <xe:this.bannerUtilityLinks> 

Я уже определил EventHandler, используемый для выбора языка:

<xp:eventHandler event="onItemClick" submit="false" 
       refreshMode="partial" refreshId="PanelAll"> 
       <xe:this.action><![CDATA[#{javascript:var submittedValue=context.getSubmittedValue(); 
if(submittedValue=="langSwitch") { 
    if(!!sessionScope.lang) { 
     if(sessionScope.lang=="FR") { 
      sessionScope.lang = "EN";  
     } else { 
      sessionScope.lang = "FR"; 
     } 
    } else { 
     //since the default is FR, the first time it is clicked means we want to go to English 
     sessionScope.lang = "EN"; 
    } 
    return; 
}}]]> 
       </xe:this.action> 
</xp:eventHandler> 

Как я могу получить выбранное значение позиции из раскрывающегося списка и действовать на него? Мне нужно установить переменную области сеанса и выполнить полное (или частичное) обновление.

Спасибо :)

+1

Привет, Бен, мы расскажем об этом в Rapid XPages Dev, который вы получили от TLCC. См. Событие onItemClick. Это в уроке Design Layout Design Framework в Модуле 7. Вам нужно добавить код в свой onItemClick, который у вас уже есть, поскольку это одно событие делает все события onclick для макета приложения. Howard, – Howard

+0

Говард, я совсем забыл, что у меня это было !!! У меня не было много времени, чтобы пройти курс, так как мой проект начался намного раньше, чем ожидалось. Информация действительно там и весьма полезна. Думаю, я потрачу время, чтобы пройти через оставшуюся часть в течение ближайших нескольких дней. ;) –

ответ

2

Вы должны добавить код в ваш onItemClick у вас уже есть, так что одно событие делает все OnClick события для компоновки приложения.

Смежные вопросы