Événements et Interactions
Système d'événements
Les événements connectent les interactions utilisateur dans le navigateur aux fonctions 4D cote serveur.
Flux
- L'utilisateur clique un bouton ou interagit avec un élément
- bweb.js envoie l'événement via WebSocket a 4D
- 4D cherche la configuration events sur le bloc
- Appelle la fonction : ds.{className}.{functionName}($vo_POST)
- La fonction retourne un WebFormController avec les instructions de réponse
- Le navigateur appliqué la réponse
Types d'événements
| Événement | Declencheur |
|---|---|
| onClick | Clic sur un bouton |
| onSelectRows | Selection d'une ligne dans une listbox |
| onChange | Changement de valeur d'un champ |
| onLoad | Chargement d'un bloc |
Boutons et onClick
Configuration d'un événement onClick dans les events du bloc :
{"onClick": [{"vt_ClassName": "MA_DATACLASS", "vt_FunctionName": "maFonction", "vo_Param": {"vt_BlocNameToSend": "UUID_WRAPPER_CHAMPS"}}]}
vo_Param.vt_BlocNameToSend : UUID du wrapper contenant les champs dont les valeurs doivent être envoyees à la fonction.
renderFunction (cote client)
Fonctions JavaScript executees cote navigateur, sans appel serveur :
| Fonction | Description |
|---|---|
| actionAccordingNumberLine | Active/désactivé un bouton selon la selection listbox |
| showBloc | Affiche un bloc |
| hideBloc | Masque un bloc |
| toggleBloc | Bascule la visibilite d'un bloc |
WebFormController (cote serveur)
Objet retourne par les fonctions 4D pour piloter la réponse :
| Méthode | Description |
|---|---|
| reloadBlock("nom") | Rafraichit un bloc spécifique |
| sendAlert("success", "msg") | Affiche une notification toast |
| showBloc("nom") / hideBloc("nom") | Bascule la visibilite d'un bloc |
| redirect("/url") | Navigue vers une autre page |
| addNewEntity() | Prepare une nouvelle entite |
| save() | Sauvegarde l'entite en cours |
| removeEntity() | Supprime l'entite en cours |
SearchEffect et filtres
Système de recherche en temps reel intégré aux listbox. Le champ de recherche déclenché un événement qui filtre l'entity selection cote serveur.

