web-dev-qa-db-fra.com

Liste des événements <p: ajax>

J'ai effectué une recherche sur Internet et je ne trouve pas de liste de <p:ajax> événements. Quelqu'un peut-il fournir une liste complète des événements pour le <p:ajax> tag?

Je suis particulièrement intéressé s'il y a un événement onblur ou quelque chose de similaire.

44
Catfish

Vous pouvez rechercher "Événements de comportement Ajax" dans Guide de l'utilisateur PrimeFaces , et vous en trouverez une abondance pour tous les composants pris en charge. . C’est également ce que PrimeFaces, directeur Optimus Prime, suggère de faire dans le cadre de cette question connexe sur le forum PrimeFaces <p:ajax> liste d'événements?

Il n'y a pas d'événement onblur, c'est le nom de l'attribut HTML, mais il existe un événement blur. C'est juste sans le préfixe "on" comme le nom d'attribut HTML. Vous pouvez également consulter tous les attributs "on *" de la documentation de balise du composant en question pour voir ceux qui sont tous disponibles, par exemple. <p:inputText> .

33
Daniel

Vous voudrez peut-être consulter "Événements JavaScript HTML DOM" pour un aperçu général des événements:

http://www.w3schools.com/jsref/dom_obj_event.asp

PrimeFaces est construit sur jQuery, voici donc la documentation "Événements" de jQuery:

http://api.jquery.com/category/events/

http://api.jquery.com/category/events/form-events/

http://api.jquery.com/category/events/keyboard-events/

http://api.jquery.com/category/events/mouse-events/

http://api.jquery.com/category/events/browser-events/

Ci-dessous, j'ai répertorié certains des événements les plus courants, avec des commentaires sur leur utilisation (extraits de la documentation jQuery).

Événements de souris

(Tout élément HTML peut recevoir ces événements.)

click

dblclick

mousedown

mousemove

mouseover

mouseout

mouseup

Événements de clavier

(Ces événements peuvent être attachés à n’importe quel élément, mais ils ne sont envoyés qu’à l’élément ayant le focus. Les éléments focalisables peuvent varier d’un navigateur à l’autre, mais les éléments de formulaire peuvent toujours avoir le focus et sont donc des candidats raisonnables pour ces types d’événements.)

keydown

keypress

keyup

Événements de formulaire

blur (Dans les navigateurs récents, le domaine de l'événement a été étendu pour inclure tous les types d'éléments.)

change (Cet événement est limité à <input> éléments, <textarea> boîtes et <select> éléments.)

focus (Cet événement est implicitement applicable à un ensemble limité d'éléments, tels que des éléments de formulaire (<input>, <select>, etc.) et des liens (<a href>). Dans les versions récentes du navigateur, l'événement peut être étendu pour inclure tous les types d'élément en définissant explicitement la propriété tabindex de l'élément. Un élément peut être mis en évidence via des commandes au clavier, telles que la touche Tab, ou par un clic de souris sur l'élément.)

select (Cet événement est limité à <input type="text"> champs et <textarea> des boites.)

submit (Il ne peut être attaché qu'à <form> éléments.)

30
Nick Humphrey

Malheureusement, les événements liés à Ajax sont mal documentés et je n'ai trouvé aucune liste complète. Par exemple, User Guide v. 3.5 répertorie itemChange événement pour p:autoComplete, mais oublie de mentionner change événement.

Si vous voulez savoir quels événements sont pris en charge:

  1. Téléchargez et décompressez le fichier source primefaces
  2. Recherchez le fichier JavaScript dans lequel votre composant est défini (par exemple, la plupart des composants de formulaire tels que SelectOneMenu sont définis dans forms.js)
  3. Rechercher this.cfg.behaviors références

Par exemple, cette section est responsable du lancement de l'événement toggleSelect dans le composant SelectCheckboxMenu:

fireToggleSelectEvent: function(checked) {
    if(this.cfg.behaviors) {
        var toggleSelectBehavior = this.cfg.behaviors['toggleSelect'];

        if(toggleSelectBehavior) {
            var ext = {
                params: [{name: this.id + '_checked', value: checked}]
            }
        }

        toggleSelectBehavior.call(this, null, ext);
    }
},
5
Danubian Sailor

Schedule fournit divers événements de comportement ajax pour répondre aux actions de l'utilisateur.

  • "dateSelect" org.primefaces.event.SelectEvent Lorsqu'une date est sélectionnée.
  • "eventSelect" org.primefaces.event.SelectEvent Lorsqu'un événement est sélectionné.
  • "eventMove" org.primefaces.event.ScheduleEntryMoveEvent Lorsqu'un événement est déplacé.
  • "eventResize" org.primefaces.event.ScheduleEntryResizeEvent Lorsqu'un événement est redimensionné.
  • "viewChange" org.primefaces.event.SelectEvent Lorsqu'une vue est modifiée.
  • "toggleSelect" org.primefaces.event.ToggleSelectEvent Lorsque toutes les cases à cocher sont modifiées
  • "expand" org.primefaces.event.NodeExpandEvent Lorsqu'un noeud est développé.
  • "collapse" org.primefaces.event.NodeCollapseEvent Lorsqu'un nœud est réduit.
  • "select" org.primefaces.event.NodeSelectEvent Lorsqu'un nœud est sélectionné.
  • "collapse" org.primefaces.event.NodeUnselectEvent Lorsqu'un noeud est désélectionné
  • "développez org.primefaces.event.NodeExpandEvent quand un noeud est développé.
  • "désélectionner" org.primefaces.event.NodeUnselectEvent Lorsqu'un nœud est désélectionné.
  • "colResize" org.primefaces.event.ColumnResizeEvent lorsqu'une colonne est redimensionnée
  • "page" org.primefaces.event.data.PageEvent Sur la pagination.
  • "sort" org.primefaces.event.data.SortEvent Lorsqu'une colonne est triée.
  • "filter" org.primefaces.event.data.FilterEvent Sur le filtrage.
  • "rowSelect" org.primefaces.event.SelectEvent Lorsqu'une ligne est sélectionnée.
  • "rowUnselect" org.primefaces.event.UnselectEvent Lorsqu'une ligne est désélectionnée.
  • "rowEdit" org.primefaces.event.RowEditEvent Lorsqu'une ligne est modifiée.
  • "rowEditInit" org.primefaces.event.RowEditEvent Lorsqu'une ligne passe en mode édition
  • "rowEditCancel" org.primefaces.event.RowEditEvent Lorsque la modification de ligne est annulée.
  • "colResize" org.primefaces.event.ColumnResizeEvent Lorsqu'une colonne est sélectionnée.
  • "toggleSelect" org.primefaces.event.ToggleSelectEvent Lorsque la case à cocher en-tête est cochée.
  • "colReorder" - Lorsque les colonnes sont réorganisées.
  • "rowSelectRadio" org.primefaces.event.SelectEvent Sélection d'une ligne avec radio.
  • "rowSelectCheckbox" org.primefaces.event.SelectEvent Sélection de la ligne avec la case à cocher.
  • "rowUnselectCheckbox" org.primefaces.event.UnselectEvent Désélection de ligne avec case à cocher.
  • "rowDblselect" org.primefaces.event.SelectEvent Sélection d'une ligne avec un double clic.
  • "rowToggle" org.primefaces.event.ToggleEvent Row développer ou réduire.
  • "contextMenu" org.primefaces.event.SelectEvent Affichage du menu contextuel.
  • "cellEdit" org.primefaces.event.CellEditEvent Lorsqu'une cellule est modifiée.
  • "rowReorder" org.primefaces.event.ReorderEvent Réordonne la ligne.

il y a plus ici https://www.primefaces.org/docs/guide/primefaces_user_guide_5_0.pdf

3
Boris_Ndong

J'ai la liste en mode débogage; J'ai d'abord vu le moment où l'erreur a été jetée

javax.faces.view.facelets.TagException: /showcase/partial_submit.xhtml @ 26,36 L'événement: modifié n'est pas pris en charge. org.primefaces.component.behavior.ajax.AjaxBehaviorHandler.applyAttachedObject (AjaxBehaviorHandler.Java:179) org.primefaces.component.behavior.ajax.AjaxBehaviorHandler.apply (AjaxBehaviorH

puis j'ai débogué AjaxBehaviorHandler

enter image description here

donc, si vous voulez découvrir la bonne liste d'événements pris en charge, vous pouvez générer une erreur (en utilisant un nom d'événement incorrect) et suivez cette procédure.

2
Frizz1977

Comme la liste des événements possibles n'est pas liée à p:ajax Mais au composant avec lequel il est utilisé, vous devez demander au composant pour quels événements ajax il prend en charge.

Il existe plusieurs façons de déterminer les événements ajax pour un composant donné:

1) Demander le composant en xhtml:

Vous pouvez sortir la liste directement en xhtml en liant ce composant à une variable de domaine d'application et en imprimant la propriété eventNames:

<p:autoComplete binding="#{ac}"></p:autoComplete>
<h:outputText value="#{ac.eventNames}" />

Cette sortie

[blur, change, valueChange, click, dblclick, focus, keydown, keypress, keyup,
 mousedown, mousemove, mouseout, mouseover, mouseup, select, itemSelect,
 itemUnselect, query, moreText, clear]

2) Interrogez le composant Java code:

Identifiez la classe d'implémentation du composant et appelez sa méthode 'implémentation de javax.faces.component.UIComponentBase.getEventNames()':

import javax.faces.component.UIComponentBase;

public class SomeTest {

    public static void main(String[] args) {
        dumpEvents(new org.primefaces.component.inputtext.InputText());
        dumpEvents(new org.primefaces.component.autocomplete.AutoComplete());
        dumpEvents(new org.primefaces.component.datatable.DataTable());
    }

    private static void dumpEvents(UIComponentBase comp) {
        System.out.println(
                comp + ":\n\tdefaultEvent: " + comp.getDefaultEventName() + ";\n\tEvents: " + comp.getEventNames());
    }

}

Cela génère:

org.primefaces.component.inputtext.InputText@239963d8:
    defaultEvent: valueChange;
    Events: [blur, change, valueChange, click, dblclick, focus, keydown, keypress, keyup, mousedown, mousemove, mouseout, mouseover, mouseup, select]
org.primefaces.component.autocomplete.AutoComplete@72d818d1:
    defaultEvent: valueChange;
    Events: [blur, change, valueChange, click, dblclick, focus, keydown, keypress, keyup, mousedown, mousemove, mouseout, mouseover, mouseup, select, itemSelect, itemUnselect, query, moreText, clear]
org.primefaces.component.datatable.DataTable@614ddd49:
    defaultEvent: null;
    Events: [rowUnselect, colReorder, tap, rowEditInit, toggleSelect, cellEditInit, sort, rowToggle, cellEdit, rowSelectRadio, filter, cellEditCancel, rowSelect, contextMenu, taphold, rowReorder, colResize, rowUnselectCheckbox, rowDblselect, rowEdit, page, rowEditCancel, virtualScroll, rowSelectCheckbox]

) 'rtfm' ;-)

La meilleure option consiste à examiner la documentation du composant utilisé, telle que fournie, espérons-le, par les développeurs du composant, sans se limiter à PrimeFaces. (p:ajax Peut être attaché à tout composant fournissant des comportements ajax).

L'avantage par rapport aux suggestions précédentes est que la documentation fournit non seulement les noms d'événements, mais également une description améliorée de l'événement potentiellement enrichi d'une classe de type d'événement pouvant être interceptée par un écouteur.

Par exemple, le org.primefaces.event.SelectEvent En cas de

<p:ajax event="itemSelect" listener="#{anyBean.onItemSelect}"/>

et la signature de la méthode d’écoute public void onItemSelect(SelectEvent) fournit des données contextuelles supplémentaires sur les événements.

Lorsqu'il n'y a pas de liste explicite d'événements ajax sur un composant dans la documentation PrimeFaces, la liste des rappels sur * javascript peut être utilisée comme événement en supprimant le 'on' et en utilisant le reste comme nom d'événement. Les autres réponses à cette question fournissent également une aide sur ces événements simples.

1
Selaron