Xe:djtabcontainer Переключить Вкладку

Тема в разделе "Lotus - Xpages", создана пользователем susinmn, 11 окт 2013.

  1. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    Подскажите как программно переключить вкладку.
    Наткнулся на вот эту тему http://replyz.com/c/22797879-how-to-set-th...t-around-xpages, но не переварил.

    Интересует и серверное и переключение на клиенте.

    Спасибо.
     
  2. alexas

    alexas Well-Known Member

    Регистрация:
    10 июн 2009
    Сообщения:
    215
    Симпатии:
    0
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">CSJS plus SSJS</div></div><div class="sp-body"><div class="sp-content">
    Код (Text):
    <?xml version="1.0" encoding="UTF-8"?>
    <xp:view xmlns:xp="http://www.ibm.com/xsp/core"
    xmlns:xc="http://www.ibm.com/xsp/custom" dojoTheme="true"
    dojoParseOnLoad="true">

    <script type="text/javascript">
    dojo.require("dijit.layout.ContentPane");
    dojo.require("dijit.layout.TabContainer");
    </script>

    <xp:this.afterPageLoad>
    <![CDATA[#{java script:sessionScope.put("SelectTab","");}]]>
    </xp:this.afterPageLoad>

    <h1>Tab Container
    </h1>
    <div id="mainTabContainer" dojoType="dijit.layout.TabContainer"
    style="width:100%;height:50%" tabPosition="left">
    <div id="tab1" dojoType="dijit.layout.ContentPane" title="First Tab" >
    First Tab
    </div>
    <div id="tab2" dojoType="dijit.layout.ContentPane"  title="Second Tab" selected="#{sessionScope.SelectTab}" >
    Second Tab by SSJS     

    </div>
    <div id="tab3" dojoType="dijit.layout.ContentPane" title="Third Tab" partialRefresh="true">
    Third Tab by CSJS

    <xp:br></xp:br>В xp.tabbedPanel только первая вкладка отображается при загрузке страницы, другие вкладки отображаются, когда пользователь щелкает их. Таким образом, полное или частичное обновление происходит, когда пользователь нажимает на вкладку, которая вызывает поля валидаторов.
    Таким образом, в конце концов, пользователь не может открыть другую вкладку, пока все валидаторы на текущей вкладке не fullfilled.
    В настоящее время не существует обходной путь или решение с использованием XP: tabbedPanel тега. Но есть хорошая альтернатива: djTabContainer.
    Просто добавить контейнер Dojo Tab Control, и внутри контейнера добавить Tab области управления.
    </div>
    </div>





    <xp:button value="Third Tab CSJS" id="button1">
    <xp:eventHandler event="onclick" submit="false">
    <xp:this.script><![CDATA[ var TabContainer = dijit.byId("mainTabContainer");

    var subTab = dijit.byId("tab3");
    TabContainer.selectChild(subTab);]]></xp:this.script>
    </xp:eventHandler></xp:button>
    <xp:br></xp:br>
    <xp:br></xp:br><xp:button value="Second Tab SSJS" id="button2">
    <xp:eventHandler event="onclick" submit="true"
    refreshMode="complete">
    <xp:this.action><![CDATA[#{java script:sessionScope.put("SelectTab","true")}]]></xp:this.action>
    </xp:eventHandler></xp:button><xp:eventHandler event="onClientLoad" submit="true" refreshMode="norefresh">
    </xp:eventHandler></xp:view>
    Для SSJS можно определить для нужной вкладки - selected="${VariableValue}"
    VariableValue by defoult можно не определять, тогда by OnLoad будет первый Tab
    Где-то в коде:
    1 присвоить VariableValue = "true"
    2 отрефрешить весь TabContainer или конкретный Tab

    P.S. Не проверял, но по логике - должно работать.
    P.P.S. Работает. В код добавил кнопку SSJS :)
     
Загрузка...
Похожие Темы - djtabcontainer Переключить Вкладку
  1. susinmn
    Ответов:
    1
    Просмотров:
    1.201

Поделиться этой страницей