Подтвердить что ты не робот

Список событий <p: ajax>

Я искал Интернет, и я не могу найти список событий <p:ajax>. Может ли кто-либо предоставить полный список событий для тега <p:ajax>?

Мне особенно интересно, есть ли событие onblur или что-то подобное.

4b9b3361

Ответ 1

Вы можете найти "События поведения Ajax" в Руководство пользователя PrimeFaces, и вы найдете много их для всех поддерживаемых компонентов. То, что PrimeFaces предлагает Optimus Prime предложить сделать в этом связанном вопросе на форуме PrimeFaces <p:ajax> список событий?

Нет события onblur, что имя атрибута HTML, но есть событие blur. Он просто без префикса "on", как имя атрибута HTML. Вы также можете просмотреть все атрибуты "on *" в документации тега данного компонента, чтобы узнать, какие из них доступны, например. <p:inputText>.

Ответ 2

Вы можете посмотреть "JavaScript HTML DOM Events" для общего обзора событий:

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

PrimeFaces построен на jQuery, поэтому здесь 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/

Ниже перечислены некоторые из наиболее распространенных событий с комментариями о том, где их можно использовать (взято из документации jQuery).

События мыши

(Любой элемент HTML может принимать эти события.)

click

dblclick

mousedown

mousemove

mouseover

mouseout

mouseup

События клавиатуры

(Эти события могут быть привязаны к любому элементу, но событие отправляется только элементу, который имеет фокус. Фокусируемые элементы могут различаться между браузерами, но элементы формы всегда могут получить фокус, поэтому разумные кандидаты для этих типов событий. )

keydown

keypress

keyup

События формы

blur (В последних браузерах домен события был расширен для включения всех типов элементов.)

change (Это событие ограничено <input> элементами, <textarea> и <select>).

focus (Это событие неявно применимо к ограниченному набору элементов, таких как элементы формы (<input>, <select> и т.д.) и ссылки (<a href>). В последних версиях браузера событие может быть расширен, чтобы включать все типы элементов, явно устанавливая свойство tabindex элемента. Элемент может получить фокус с помощью команд клавиатуры, таких как клавиша Tab или щелчки мышью на элементе.)

select (Это событие ограничено полями <input type="text"> и <textarea>).

submit (Его можно привязать только к элементам <form>.)

Ответ 3

К сожалению, события Ajax плохо документированы, и я не нашел исчерпывающего списка. Например, в Руководстве пользователя v. 3.5 перечислены события itemChange для p:autoComplete, но забывается, чтобы отметить событие изменения.

Если вы хотите узнать, какие события поддерживаются:

  • Загрузите и распакуйте исходный фрейм.
  • Найдите файл JavaScript, в котором определен ваш компонент (например, большинство компонентов формы, таких как SelectOneMenu, определены в forms.js)
  • Поиск this.cfg.behaviors ссылок

Например, этот раздел отвечает за запуск функции toggleSelect в компоненте 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);
    }
},

Ответ 4

Расписание предоставляет различные события поведения ajax для ответа на действия пользователя.

  • "dateSelect" org.primefaces.event.SelectEvent Когда выбрана дата.
  • "eventSelect" org.primefaces.event.SelectEvent Когда событие выбрано.
  • "eventMove" org.primefaces.event.ScheduleEntryMoveEvent Когда событие перемещается.
  • "eventResize" org.primefaces.event.ScheduleEntryResizeEvent При изменении размера события.
  • "viewChange" org.primefaces.event.SelectEvent При изменении представления.
  • "toggleSelect" org.primefaces.event.ToggleSelectEvent При переключении всех изменений флажка
  • "раскрыть" org.primefaces.event.NodeExpandEvent Когда узел развернут.
  • "collapse" org.primefaces.event.NodeCollapseEvent Когда узел свернут.
  • "select" org.primefaces.event.NodeSelectEvent Когда выбран узел.-
  • "collapse" org.primefaces.event.NodeUnselectEvent Когда узел не выбран
  • "expand org.primefaces.event.NodeExpandEvent Когда узел раскрывается.
  • "отменить выбор" org.primefaces.event.NodeUnselectEvent Когда узел не выбран.
  • "colResize" org.primefaces.event.ColumnResizeEvent При изменении размера столбца
  • "page" org.primefaces.event.data.PageEvent О нумерации страниц.
  • "sort" org.primefaces.event.data.SortEvent При сортировке столбца.
  • "filter" org.primefaces.event.data.FilterEvent При фильтрации.
  • "rowSelect" org.primefaces.event.SelectEvent Когда выбирается строка.
  • "rowUnselect" org.primefaces.event.UnselectEvent Когда строка не выбрана.
  • "rowEdit" org.primefaces.event.RowEditEvent Когда строка редактируется.
  • "rowEditInit" org.primefaces.event.RowEditEvent Когда строка переключается в режим редактирования
  • "rowEditCancel" org.primefaces.event.RowEditEvent При отмене редактирования строки.
  • "colResize" org.primefaces.event.ColumnResizeEvent, когда выбирается столбец.
  • "toggleSelect" org.primefaces.event.ToggleSelectEvent Когда переключатель заголовка установлен.
  • "colReorder" - когда столбцы переупорядочены.
  • "rowSelectRadio" org.primefaces.event.SelectEvent Выбор строки с помощью радио.
  • "rowSelectCheckbox" org.primefaces.event.SelectEvent Выбор строки с флажком.
  • "rowUnselectCheckbox" org.primefaces.event.UnselectEvent Отмена выбора строки с флажком.
  • "rowDblselect" org.primefaces.event.SelectEvent Выбор строки двойным щелчком.
  • "rowToggle" org.primefaces.event.ToggleEvent Строка разворачивается или сворачивается.
  • "contextMenu" org.primefaces.event.SelectEvent ContextMenu отобразить.
  • "cellEdit" org.primefaces.event.CellEditEvent Когда ячейка редактируется.
  • "rowReorder" org.primefaces.event.ReorderEvent При переупорядочении строк.

здесь больше https://www.primefaces.org/docs/guide/primefaces_user_guide_5_0.pdf

Ответ 5

У меня есть список в режиме отладки; сначала я увидел точку, в которой была выброшена ошибка

javax.faces.view.facelets.TagException:/showcase/partial_submit.xhtml @26,36 Событие: изменено не поддерживается.   org.primefaces.component.behavior.ajax.AjaxBehaviorHandler.applyAttachedObject(AjaxBehaviorHandler.java:179)   org.primefaces.component.behavior.ajax.AjaxBehaviorHandler.apply(AjaxBehaviorHandler.java:157)

а затем я отлаживал AjaxBehaviorHandler

введите описание изображения здесь

поэтому, если вы хотите найти правильный список поддерживаемых событий, вы можете сгенерировать ошибку (используя неправильное имя события) и следовать этому пути

Ответ 6

Поскольку список возможных событий связан не с самим p:ajax, а с компонентом, с которым он используется, вам придется спросить компонент, для каких событий ajax он поддерживает.

Существует несколько способов определения событий ajax для данного компонента:

1) Спросите компонент в xhtml:

Вы можете вывести список напрямую в xhtml, связав этот компонент с переменной области запроса и напечатав свойство eventNames:

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

Это выводит

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

2) Запросите компонент в коде Java:

Выясните класс реализации компонента и вызовите его реализацию метода 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());
    }

}

Это выводит:

[email protected]:
    defaultEvent: valueChange;
    Events: [blur, change, valueChange, click, dblclick, focus, keydown, keypress, keyup, mousedown, mousemove, mouseout, mouseover, mouseup, select]
[email protected]:
    defaultEvent: valueChange;
    Events: [blur, change, valueChange, click, dblclick, focus, keydown, keypress, keyup, mousedown, mousemove, mouseout, mouseover, mouseup, select, itemSelect, itemUnselect, query, moreText, clear]
[email protected]:
    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]

3) 'rtfm' ;-)

Лучший вариант - изучить документацию конкретного используемого компонента, которая, как мы надеемся, предоставляется разработчиками компонентов, не ограничиваясь, например, PrimeFaces. (p:ajax может быть присоединен к любому компоненту, обеспечивающему поведение Ajax).

Преимущество по сравнению с предыдущими предложениями состоит в том, что документация не только предоставляет имена событий, но также и расширенное описание события, потенциально обогащенного классом типа события, который может быть перехвачен слушателем.

Например, org.primefaces.event.SelectEvent в случае

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

и подпись метода прослушивателя public void onItemSelect(SelectEvent) предоставляет дополнительные контекстные данные события.

В тех случаях, когда в документации PrimeFaces нет явного списка событий ajax на компосте, список обратных вызовов on * javascript можно использовать в качестве событий, удалив "on" и используя остаток в качестве имени события. Другие ответы на этот вопрос также помогают справиться с этими простыми событиями.