Mit der executeOnServer-Funktion und einem Serverseitigen Event sollte es doch auch gehen:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view
xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xe="http://www.ibm.com/xsp/coreex">
<xp:button
value="Show"
id="buttonShowDialog1">
<xp:eventHandler
event="onclick"
submit="true"
refreshMode="partial">
<xp:this.action><![CDATA[#{javascript:getComponent("dialog1").show()}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
<xe:dialog
id="dialog1"
onHide="executeOnServer('showDialog2', '#{id:dialog2}')">DIALOG 1</xe:dialog>
<xe:dialog
id="dialog2">DIALOG 2</xe:dialog>
<xp:scriptBlock
id="scriptBlockExecOnServer">
<xp:this.value>
<![CDATA[
var executeOnServer = function () {
// must supply event handler id or we're outta here....
if (!arguments[0])
return false;
// the ID of the event handler we want to execute
var functionName = arguments[0];
// OPTIONAL - The Client Side ID that you want to partial refresh after executing the event handler
var refreshId = (arguments[1]) ? arguments[1] : "@none";
var form = (arguments[1]) ? XSP.findForm(arguments[1]) : dojo.query('form')[0];
// OPTIONAL - Options object contianing onStart, onComplete and onError functions for the call to the
// handler and subsequent partial refresh
var options = (arguments[2]) ? arguments[2] : {};
// Set the ID in $$xspsubmitid of the event handler to execute
dojo.query('[name="$$xspsubmitid"]')[0].value = form.id + ':' + functionName;
XSP._partialRefresh("post", form, refreshId, options);
}
]]>
</xp:this.value>
</xp:scriptBlock>
<xp:eventHandler
event="eventShowDialog2"
id="showDialog2">
<xp:this.action><![CDATA[#{javascript:getComponent("dialog2").show()}]]></xp:this.action>
</xp:eventHandler>
</xp:view>