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

  • Автор темы YGol
  • Дата начала
Y

YGol

Использую компоненту из Extlib-a dialog
Сделал Custom Control c диалогом, внутри которого еще 2 внутренних диалога вызываемых по условию, однако внутренние диалоги отображается без содержимого (только заголовок).
Подскажите, как все же правильно реализовать эту задачу. Кусок кода прилагаю.
Вызов первого диалога:
Код:
<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>
Структура вызванного диалога:
Код:
<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 и код в этой кнопке диалога перестает работать
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
В данном случае нельзя уничтожать родительский диалог, а после вызывать дочерний
Код:
getComponent('dialogType').hide();

Но если надо закрывать родительский - то советую пересмотреть метод реализации.
Как вариант - написать вызов нужного диалога при закрытии основного
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!