Das Notes Forum

Domino 9 und frühere Versionen => ND9: Entwicklung => Thema gestartet von: thomas_k am 12.09.17 - 07:50:14

Titel: SSJS beim OnClick-Event eines Dropdown-Menüs
Beitrag von: thomas_k am 12.09.17 - 07:50:14
Hallo zusammen,

ich bin wieder mal auf eure Hilfe angewiesen ::)

Gibt es in den XPages eine Möglichkeit, durch einen Klick auf ein LeafNode in einem Dropdown-Menü einen SSJS-Code auszuführen? Standardmäßig kann nur CSJS ausgewählt werden.

Vielen Dank im Voraus!

LG Thomas
Titel: Re: SSJS beim OnClick-Event eines Dropdown-Menüs
Beitrag von: umi am 12.09.17 - 10:50:59
Moin

Workaround
CSJS aufrufen, der einen SSJS button auslöst ?

Was willst Du den erreichen ?

Titel: Re: SSJS beim OnClick-Event eines Dropdown-Menüs
Beitrag von: thomas_k am 12.09.17 - 14:07:16
Danke für die schnelle Antwort!

Ich möchte beim Klick auf so eine Node eine Funktion in einer von mir erstellten Server Java-Script Library aufrufen, falls das eben technisch möglich ist.
In dieser Funktion wird ein neues Notesdokument erstellt und sofort mit einigen Daten befüllt.

LG
Titel: Re: SSJS beim OnClick-Event eines Dropdown-Menüs
Beitrag von: umi am 12.09.17 - 15:46:00
Moin

Da bleibt nur das mit dem Button oder du machst noch einen Rest Service handler irgendwo rein, denn du von dem onClick event ansprichst.
Titel: Re: SSJS beim OnClick-Event eines Dropdown-Menüs
Beitrag von: Sven Hasselbach am 13.09.17 - 09:55:13
Per CSJS einen SSJS EventHandler aufrufen wäre auch noch eine Option (und die sicher sauberste Lösung).
Titel: Re: SSJS beim OnClick-Event eines Dropdown-Menüs
Beitrag von: thomas_k am 13.09.17 - 13:40:53
Kannst du mir anhand eines kurzen Beispiels den Aufruf des EventHandlers per CSJS zeigen?
Irgendwie bin ich gerade völlig planlos ??? ???
Titel: Re: SSJS beim OnClick-Event eines Dropdown-Menüs
Beitrag von: Sven Hasselbach am 13.09.17 - 14:43:32
Code
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">

	<xp:scriptBlock id="scriptBlockExecuteOnServer">
		<xp:this.value><![CDATA[
			function executeOnServer() {
				if (!arguments[0])
					return false;
    
			    var functionName = arguments[0];        
			    var refreshId = (arguments[1]) ? arguments[1] : "@none";
			    var form = (arguments[1]) ? XSP.findForm(arguments[1]) : dojo.query('form')[0];
			    
			    var options = (arguments[2]) ? arguments[2] : {};
			    var submitValue = (arguments[3]) ? arguments[3] : '';
			            
			    dojo.query('[name="$$xspsubmitid"]')[0].value = functionName;
			    dojo.query('[name="$$xspsubmitvalue"]')[0].value = submitValue;
			    XSP._partialRefresh("post", form, refreshId, options);        
		}]]></xp:this.value>
	</xp:scriptBlock>
	
	<xp:button value="Exec On Server" id="execOnServer">
		<xp:eventHandler event="onclick" submit="false">
			<xp:this.script><![CDATA[executeOnServer( "#{id:onMyEvent}" );]]></xp:this.script>
		</xp:eventHandler>
	</xp:button>
	
	
	<xp:eventHandler id="onMyEvent" event="onMyEvent" submit="true"
		disableValidators="true" refreshMode="norefresh"
		action="#{javascript:print('Hello World!')}">
	</xp:eventHandler>


</xp:view>
Titel: Re: SSJS beim OnClick-Event eines Dropdown-Menüs
Beitrag von: thomas_k am 18.09.17 - 07:19:18
Vielen Dank für eure schnellen Antworten!

Mithilfe von Svens Beispiel hab ichs nun doch hinbekommen 8)

LG