eventHandler - Gestionnaire d'événements (propriété)

Spécifie les scripts et les actions simples à exécuter quand un événement de contrôle se produit.

Catégorie

événements

Syntaxe

Pour un événement serveur :
<xp:eventHandler event="eventname" submit="true|false"
	refreshMode="complete|partial|norefresh" refreshId="controlid"
	immediate="true|false"	execMode="partial|full">
	<xp:this.action>
	<!--For a script:-->
		<![CDATA[#{javascript:script}]]> <!--where script is the text of the script-->
	<!--For a simple action:-->
		<xp:simpleactionname attributes>content</xp:simpleactionname>
	<!--For a simple action group:-->
	</xp:this.action>
		<xp:actionGroup condition="#{javascript:script}">
			<xp:simpleactionname attributes>content</xp:simpleactionname>
			...
			<!--Can embed simple action groups-->
		</xp:actionGroup>
	<xp:this.parameters>
		<xp:parameter name="name" value="value"></xp:parameter>
		...
	</xp:this.parameters>
</xp:eventHandler>
Pour un événement client :
<xp:eventHandler event="eventname" submit="false">
	<xp:this.script>
	<!--For a script:-->
		<![CDATA[script]]> <!--where script is the text of the script-->
	<!--For a simple action:-->
		<xp:simpleactionname attributes>content</xp:simpleactionname>
	<!--For a simple action group:-->
		<xp:scriptGroup conditionScript="script">
			<xp:simpleactionname attributes>content</xp:simpleactionname>
			...
			<!--Can embed simple action groups-->
		</xp:scriptGroup>
	</xp:this.script>
</xp:eventHandler>
Où :

Utilisation

Les événements sont des actions qu'un utilisateur peut exécuter, comme le fait de cliquer sur un bouton ou de supprimer la mise en évidence d'une zone d'édition. Les gestionnaires d'événements sont des actions que vous, le concepteur, exécutez en réponse à ces événements. Un gestionnaire d'événements peut être un script serveur, un script client, une action simple ou un groupe d'actions simples.

En mode Conception, avec la mise en évidence sur le contrôle ou la page, cliquez sur l'onglet Evénements. Les événements sont traités comme des propriétés et apparaissent sur l'onglet Toutes les propriétés sous Propriétés. Il n'est toutefois pas recommandé de créer ou de modifier un événement à partir de Toutes les propriétés.

Exemples

Cet événement onclick de bouton crée un nouveau document avec un script serveur :
<xp:button value="Create document" id="button4">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
		<xp:this.action>
			<![CDATA[#{javascript:var doc = database.createDocument();
			doc.replaceItemValue("subject", requestScope.subject);
			doc.save();
			requestScope.subject = null}]]>
		</xp:this.action>
	</xp:eventHandler>
</xp:button>
Cet événement onclick de bouton ouvre la page intitulée main avec une action simple serveur :
<xp:button id="button5" value="Main page">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
		<xp:this.action>
			<xp:openPage name="/main.xsp" target="newDocument"></xp:openPage>
		</xp:this.action>
	</xp:eventHandler>
</xp:button>
Cet événement onclick de bouton crée un nouveau document puis ouvre la page nommée main avec un groupe d'actions simples :
<xp:button value="Create document" id="button6">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
		<xp:this.action>
			<xp:actionGroup condition="#{javascript:true}">
				<xp:executeScript>
					<xp:this.script><![CDATA[#{javascript:var doc = database.createDocument();
					doc.replaceItemValue("subject", requestScope.subject);
					doc.save();
					requestScope.subject = null}]]>
					</xp:this.script>
				</xp:executeScript>
				<xp:openPage name="/main.xsp" target="newDocument"></xp:openPage>
			</xp:actionGroup>
		</xp:this.action>
	</xp:eventHandler>
</xp:button>
Cet événement onblur de zone d'édition affiche un message si le texte utilisateur contient des espaces :
<xp:inputText id="inputText2" value="#{requestScope.subject}">
	<xp:eventHandler event="onblur" submit="true" refreshMode="complete">
		<xp:this.script>
		<![CDATA[var e = window.document.getElementById("#{id:inputText2}");
		if(e.value.indexOf(" ") > -1) {
		window.alert("You should not have spaces in this value.")}]]>
		</xp:this.script>
	</xp:eventHandler>
</xp:inputText>

Documentation complémentaire | Marques |