Вкладки TitleBar в элементе управления ApplicationLayout (extlib), генерирующие неверный код - PullRequest
1 голос
/ 15 февраля 2012

Я использую элемент управления ApplicationLayout (8.5.3 UP1) и добавил базовые узлы для отображения в виде вкладок. Я хочу, чтобы на вкладках запускался JavaScript для установки переменной sessionScope при нажатии. У меня есть файл sessionScope.put в onClick, но при нажатии на вкладку переменная установлена ​​неправильно.

Хуже, когда я смотрю на источник страницы, это то, что я вижу для вкладок:

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

Обратите внимание, что у первого li нет кода href или onclick, а у двух других записей li есть неверные параметры href и onclick (и что onclick не соответствует метке).

Из того, что я вижу в элементе управления, это должно работать. Он должен выполнить код onClick, если в свойстве href для узла ничего нет. Буду признателен за любые мысли или идеи о том, как заставить это работать. Спасибо.

1 Ответ

4 голосов
/ 15 февраля 2012

Событие onClick на basicTreeNode используется для запуска clientSide javascript. Вы не сможете поместить любой SSJS, такой как sessionScope.put, который вы описали.

Чтобы сделать то, что вам требуется, вам нужно использовать свойство submitValue basicTreeNode, а затем добавить свой сценарий, чтобы установить для sessionScope событие onItemClick элемента управления applicationLayout.

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