Очередной Сабж Про Dialog Box

Dragon108

Well-known member
19.01.2010
265
0
#1
Есть довольно простая задача: Есть кнопка, по клику на нее должно открываться окно (DialogBox) с возможность ввода текста, после закрытия окна введенный текст необходимо обработать и сохранить в документ.

Нашел тучу примеров, в частности через Dojo : Ссылка (пример)

Вроде бы все ок, все красиво: окно открывается, текст вводиться. Но вопрос такой, откуда потом брать значение введенное в DialogBox?
Насколько я понял здесь (в примере) оно вводится в поле которое привязано к viewScope.testValue, но при сохранении в документ viewScope.testValue оказывается пустым.

Хелп плиз, где нагорбил\недосмотрел\проглядел?

P.S. Пробовал менять типы Scope переменных (Application, session и т.д.), брать поле через getComponent - все равно значение там пустое.

Код хпаге прилагаю -

<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">"Текст XPage"</div></div><div class="sp-body"><div class="sp-content">
Код:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" dojoParseOnLoad="true"
dojoTheme="true">
<xp:this.resources>
<xp:dojoModule name="dijit.Dialog"></xp:dojoModule>
</xp:this.resources>
<xp:this.data>
<xp:dominoDocument var="document1" formName="RPCEvent"></xp:dominoDocument>
</xp:this.data>
<xp:button value="Show" id="button2">
<xp:eventHandler event="onclick" submit="false">
<xp:this.script><![CDATA[dijit.byId("#{id:dlg}").show()]]></xp:this.script>
</xp:eventHandler>
</xp:button>
<xp:br></xp:br>
<xp:panel id="dlg" dojoType="dijit.Dialog">
<xp:this.dojoAttributes>
<xp:dojoAttribute name="title" value="Test Dialog"></xp:dojoAttribute>
</xp:this.dojoAttributes>
<xp:inputText id="target" value="#{sessionScope.testValue}"></xp:inputText>
</xp:panel>
<xp:br></xp:br>
<xp:button id="button1" value="Save">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">

<xp:this.action>

<xp:actionGroup>




<xp:executeScript>
<xp:this.script><![CDATA[#{java script:document1.getDocument().replaceItemValue('A1', sessionScope.testValue)
}]]></xp:this.script>
</xp:executeScript>
<xp:saveDocument var="document1"></xp:saveDocument>
</xp:actionGroup>
</xp:this.action>
</xp:eventHandler></xp:button>
</xp:view>
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#2
Если ты пытаешься все это обрабатывать на SSJS - то следует отходить от привычного программирования.
В SSJS нет понятия модальных окон. И следовательно обрабатывать диалоги как LS не получится.
Почитай тут