Вызов Последовательных Диалогов

Тема в разделе "Lotus - Xpages", создана пользователем YGol, 13 май 2014.

  1. YGol

    YGol Member

    Регистрация:
    25 ноя 2013
    Сообщения:
    23
    Симпатии:
    0
    Использую компоненту из Extlib-a dialog
    Сделал Custom Control c диалогом, внутри которого еще 2 внутренних диалога вызываемых по условию, однако внутренние диалоги отображается без содержимого (только заголовок).
    Подскажите, как все же правильно реализовать эту задачу. Кусок кода прилагаю.
    Вызов первого диалога:
    Код (Text):
    <xp:link escape="true" id="link5" rendered="#{java script:document1.isEditable()}">
    <xp:this.text><![CDATA[>]]></xp:this.text>
    <xp:eventHandler event="onclick" refreshMode="partial" refreshId="PanelCur2" submit="true">
    <xp:this.action><![CDATA[#{java script:var a_type:Array=["Входящие документы", "Внутренние документы"];
    viewScope.dForSelect=a_type;
    var c = getComponent("dialogType");
    c.show();}]]></xp:this.action>
    </xp:eventHandler>
    </xp:link>
    Структура вызванного диалога:
    Код (Text):
    <xe:dialog id="dialogType" title="Выбор">
    <xp:panel style="padding:3">

    <xp:listBox id="ForSelect" value="#{viewScope.dForSelect}"
    style="width:98.0%">
    <xp:selectItems>
    <xp:this.value><![CDATA[#{java script:viewScope.dForSelect}]]></xp:this.value>
    </xp:selectItems>
    </xp:listBox>
    <xp:br></xp:br>
    <xp:br></xp:br>


    <xp:button value="Применить" id="button1" execId="dialogType">

    <xp:eventHandler event="onclick" refreshMode="partial"
    refreshId="PanelCur2" immediate="true">
    <xp:this.action><![CDATA[#{java script:print ("!!!!!!!!!!!!!!!!!!!!!!!!!!начало кода")
    var c:com.ibm.xsp.component.xp.XspSelectOneListbox=getComponent('ForSelect')
    getComponent('dialogType').hide();

    if (c.getSubmittedValue()=="Входящие документы") {
    print ("показ "+c.getSubmittedValue())
    var d = getComponent("dialogIncom");
    print ("typeof(d)="+typeof(d))
    d.show();
    }
    else if (c.getSubmittedValue()=="Внутренние документы") {
    print ("показ "+c.getSubmittedValue())
    var d = getComponent("dialogIntern")
    print ("typeof(d)="+typeof(d))
    d.show();
    } }]]></xp:this.action>
    </xp:eventHandler>
    </xp:button>
    <xp:button value="Отмена" id="button9">
    <xp:eventHandler event="onclick" refreshMode="complete"
    immediate="true" submit="true">
    <xp:this.action>
    <![CDATA[#{java script:getComponent('dialogType').hide()}]]>
    </xp:this.action>
    </xp:eventHandler>
    </xp:button>

    </xp:panel>

    <xe:dialog id="dialogIncom" title="Входящие">
    <xp:label value="Входящие" id="label1"></xp:label>
    </xe:dialog>
    <xe:dialog id="dialogIntern" title="Внутренние">
    <xp:label value="Внутренние" id="label2"></xp:label>

    </xe:dialog>

    </xe:dialog>
    Обнаружил такой эффект, кнопка «Применить» после сохранения и редактирования кода внутри ее иногда обрастает атрибутом submit=false и код в этой кнопке диалога перестает работать
     
  2. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    В данном случае нельзя уничтожать родительский диалог, а после вызывать дочерний
    Код (Text):
    getComponent('dialogType').hide();
    Но если надо закрывать родительский - то советую пересмотреть метод реализации.
    Как вариант - написать вызов нужного диалога при закрытии основного
     
Загрузка...
Похожие Темы - Вызов Последовательных Диалогов
  1. k85
    Ответов:
    0
    Просмотров:
    360
  2. alexas1
    Ответов:
    0
    Просмотров:
    506
  3. Sanchezz86
    Ответов:
    1
    Просмотров:
    589
  4. vln1981
    Ответов:
    0
    Просмотров:
    711
  5. JohnLemon
    Ответов:
    3
    Просмотров:
    876

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