<p:ajax> 事件列表
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/11586779/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
List of <p:ajax> events
提问by Catfish
I've searched the Internet and I cannot find a list of <p:ajax>events. Can anyone provide a complete list of events for the <p:ajax>tag?
我在互联网上搜索过,但找不到<p:ajax>活动列表。任何人都可以提供<p:ajax>标签的完整事件列表吗?
I'm particularly interested if there is an onblurevent or something similar.
如果有onblur活动或类似的事情,我特别感兴趣。
采纳答案by Daniel
You can search for "Ajax Behavior Events"in PrimeFaces User's Guide, and you will find plenty of them for all supported components. That's also what PrimeFaces lead Optimus Prime suggest to do in this related question at the PrimeFaces forum <p:ajax>event list?
您可以在PrimeFaces User's Guide 中搜索“Ajax Behavior Events”,您会在所有支持的组件中找到大量此类事件。这也是 PrimeFaces 领导 Optimus Prime 在 PrimeFaces 论坛活动列表中的相关问题中建议做的事情吗?<p:ajax>
There is no onblurevent, that's the HTML attribute name, but there is a blurevent. It's just without the "on" prefix like as the HTML attribute name. You can also look at all "on*" attributes of the tag documentationof the component in question to see which are all available, e.g. <p:inputText>.
没有onblur事件,那就是 HTML 属性名称,但有一个blur事件。它只是没有像 HTML 属性名称那样的“on”前缀。您还可以查看相关组件的标记文档的所有“on*”属性,以查看哪些属性都可用,例如<p:inputText>.
回答by Nick Humphrey
You might want to look at "JavaScript HTML DOM Events" for a general overview of events:
您可能需要查看“JavaScript HTML DOM 事件”以了解事件的一般概述:
http://www.w3schools.com/jsref/dom_obj_event.asp
http://www.w3schools.com/jsref/dom_obj_event.asp
PrimeFaces is built on jQuery, so here's jQuery's "Events" documentation:
PrimeFaces 基于 jQuery,所以这里是 jQuery 的“事件”文档:
http://api.jquery.com/category/events/
http://api.jquery.com/category/events/
http://api.jquery.com/category/events/form-events/
http://api.jquery.com/category/events/form-events/
http://api.jquery.com/category/events/keyboard-events/
http://api.jquery.com/category/events/keyboard-events/
http://api.jquery.com/category/events/mouse-events/
http://api.jquery.com/category/events/mouse-events/
http://api.jquery.com/category/events/browser-events/
http://api.jquery.com/category/events/browser-events/
Below, I've listed some of the more common events, with comments about where they can be used (taken from jQuery documentation).
下面,我列出了一些更常见的事件,并附有关于可以在哪里使用它们的评论(取自 jQuery 文档)。
Mouse Events
鼠标事件
(Any HTML element can receive these events.)
(任何 HTML 元素都可以接收这些事件。)
click
click
dblclick
dblclick
mousedown
mousedown
mousemove
mousemove
mouseover
mouseover
mouseout
mouseout
mouseup
mouseup
Keyboard Events
键盘事件
(These events can be attached to any element, but the event is only sent to the element that has the focus. Focusable elements can vary between browsers, but form elements can always get focus so are reasonable candidates for these event types.)
(这些事件可以附加到任何元素,但事件只发送到具有焦点的元素。可聚焦元素可能因浏览器而异,但表单元素始终可以获得焦点,因此是这些事件类型的合理候选者。)
keydown
keydown
keypress
keypress
keyup
keyup
Form Events
表单事件
blur(In recent browsers, the domain of the event has been extended to include all element types.)
blur(在最近的浏览器中,事件域已扩展为包括所有元素类型。)
change(This event is limited to <input>elements, <textarea>boxes and <select>elements.)
change(此事件仅限于<input>元素、<textarea>框和<select>元素。)
focus(This event is implicitly applicable to a limited set of elements, such as form elements (<input>, <select>, etc.) and links (<a href>). In recent browser versions, the event can be extended to include all element types by explicitly setting the element's tabindexproperty. An element can gain focus via keyboard commands, such as the Tabkey, or by mouse clicks on the element.)
focus(此事件隐式适用于一组有限的元素,例如表单元素 ( <input>,<select>等) 和链接 ( <a href>)。在最近的浏览器版本中,可以通过显式设置元素的tabindex属性将事件扩展为包括所有元素类型. 一个元素可以通过键盘命令获得焦点,例如Tab键,或者通过鼠标点击元素。)
select(This event is limited to <input type="text">fields and <textarea>boxes.)
select(此事件仅限于<input type="text">字段和<textarea>框。)
submit(It can only be attached to <form>elements.)
submit(它只能附加到<form>元素。)
回答by Boris_Ndong
Schedule provides various ajax behavior events to respond user actions.
Schedule提供各种ajax行为事件来响应用户操作。
- "dateSelect" org.primefaces.event.SelectEvent When a date is selected.
- "eventSelect" org.primefaces.event.SelectEvent When an event is selected.
- "eventMove" org.primefaces.event.ScheduleEntryMoveEvent When an event is moved.
- "eventResize" org.primefaces.event.ScheduleEntryResizeEvent When an event is resized.
- "viewChange" org.primefaces.event.SelectEvent When a view is changed.
- "toggleSelect" org.primefaces.event.ToggleSelectEvent When toggle all checkbox changes
- "expand" org.primefaces.event.NodeExpandEvent When a node is expanded.
- "collapse" org.primefaces.event.NodeCollapseEvent When a node is collapsed.
- "select" org.primefaces.event.NodeSelectEvent When a node is selected.-
- "collapse" org.primefaces.event.NodeUnselectEvent When a node is unselected
- "expand org.primefaces.event.NodeExpandEvent When a node is expanded.
- "unselect" org.primefaces.event.NodeUnselectEvent When a node is unselected.
- "colResize" org.primefaces.event.ColumnResizeEvent When a column is resized
- "page" org.primefaces.event.data.PageEvent On pagination.
- "sort" org.primefaces.event.data.SortEvent When a column is sorted.
- "filter" org.primefaces.event.data.FilterEvent On filtering.
- "rowSelect" org.primefaces.event.SelectEvent When a row is being selected.
- "rowUnselect" org.primefaces.event.UnselectEvent When a row is being unselected.
- "rowEdit" org.primefaces.event.RowEditEvent When a row is edited.
- "rowEditInit" org.primefaces.event.RowEditEvent When a row switches to edit mode
- "rowEditCancel" org.primefaces.event.RowEditEvent When row edit is cancelled.
- "colResize" org.primefaces.event.ColumnResizeEvent When a column is being selected.
- "toggleSelect" org.primefaces.event.ToggleSelectEvent When header checkbox is toggled.
- "colReorder" - When columns are reordered.
- "rowSelectRadio" org.primefaces.event.SelectEvent Row selection with radio.
- "rowSelectCheckbox" org.primefaces.event.SelectEvent Row selection with checkbox.
- "rowUnselectCheckbox" org.primefaces.event.UnselectEvent Row unselection with checkbox.
- "rowDblselect" org.primefaces.event.SelectEvent Row selection with double click.
- "rowToggle" org.primefaces.event.ToggleEvent Row expand or collapse.
- "contextMenu" org.primefaces.event.SelectEvent ContextMenu display.
- "cellEdit" org.primefaces.event.CellEditEvent When a cell is edited.
- "rowReorder" org.primefaces.event.ReorderEvent On row reorder.
- "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 当切换所有复选框更改时
- "expand" org.primefaces.event.NodeExpandEvent 当一个节点被扩展时。
- "collapse" org.primefaces.event.NodeCollapseEvent 节点折叠时。
- "select" org.primefaces.event.NodeSelectEvent 当一个节点被选中时。-
- "collapse" org.primefaces.event.NodeUnselectEvent 当一个节点被取消选择时
- "expand org.primefaces.event.NodeExpandEvent 当一个节点被展开时。
- "unselect" org.primefaces.event.NodeUnselectEvent 当一个节点被取消选择时。
- "colResize" org.primefaces.event.ColumnResizeEvent 调整列大小时
- “页面” 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 行重新排序。
there is more in here https://www.primefaces.org/docs/guide/primefaces_user_guide_5_0.pdf
这里还有更多https://www.primefaces.org/docs/guide/primefaces_user_guide_5_0.pdf
回答by Danubian Sailor
Unfortunatelly, Ajax events are poorly documented and I haven't found any comprehensive list. For example, User Guide v. 3.5 lists itemChangeevent for p:autoComplete, but forgets to mention changeevent.
不幸的是,Ajax 事件的记录很差,我还没有找到任何完整的列表。例如,用户指南 v. 3.5 列出了 的itemChange事件p:autoComplete,但忘记提及更改事件。
If you want to find out which events are supported:
如果您想了解支持哪些事件:
- Download and unpack primefaces source jar
- Find the JavaScript file, where your component is defined (for example, most form components such as
SelectOneMenuare defined in forms.js) - Search for
this.cfg.behaviorsreferences
- 下载并解压 primefaces 源 jar
- 找到 JavaScript 文件,其中定义了您的组件(例如,大多数表单组件,例如
SelectOneMenu在forms.js中定义的) - 搜索
this.cfg.behaviors参考
For example, this section is responsible for launching toggleSelectevent in SelectCheckboxMenucomponent:
例如,本节负责在组件中启动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);
}
},
回答by Selaron
As the list of possible events is not tied to p:ajaxitself but to the component it is used with, you'll have to ask the component for which ajax events it supports.
由于可能的事件列表与p:ajax它本身无关,而是与它所使用的组件相关联,因此您必须询问该组件支持哪些 ajax 事件。
There are multiple ways to determine the ajax events for a given component:
有多种方法可以确定给定组件的 ajax 事件:
1) Ask the component in xhtml:
1)询问xhtml中的组件:
You can output the list directly in xhtml by binding that component to a request scoped variable and printing the eventNamesproperty:
您可以通过将该组件绑定到请求范围的变量并打印eventNames属性来直接在 xhtml 中输出列表:
<p:autoComplete binding="#{ac}"></p:autoComplete>
<h:outputText value="#{ac.eventNames}" />
This outputs
这输出
[blur, change, valueChange, click, dblclick, focus, keydown, keypress, keyup,
mousedown, mousemove, mouseout, mouseover, mouseup, select, itemSelect,
itemUnselect, query, moreText, clear]
2) Ask the component in java code:
2)在java代码中询问组件:
Figure out the component implementation class and invoke its' implementation of javax.faces.component.UIComponentBase.getEventNames()method:
找出组件实现类并调用它的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());
}
}
This outputs:
这输出:
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]
3) 'rtfm';-)
3) 'rtfm';-)
Best option is to look into the documentation of the particular component in use as hopefully provided by the component developers, not limited to PrimeFaces btw. (p:ajaxcan be attached to any component providing ajax behaviors).
最好的选择是查看正在使用的特定组件的文档,希望由组件开发人员提供,不限于 PrimeFaces btw。(p:ajax可以附加到任何提供 ajax 行为的组件)。
The advantage over previous suggestions is that the documentation not only provides the event names, but also enhanced description of the event potentially enriched with an event type class that can be caught by a listener.
与之前的建议相比,该文档的优势在于,该文档不仅提供了事件名称,而且还提供了可能通过侦听器捕获的事件类型类丰富的事件的增强描述。
For example the org.primefaces.event.SelectEventin case of
例如的org.primefaces.event.SelectEvent情况下
<p:ajax event="itemSelect" listener="#{anyBean.onItemSelect}"/>
<p:ajax event="itemSelect" listener="#{anyBean.onItemSelect}"/>
and listener method signature public void onItemSelect(SelectEvent)provides additional event contextual data.
和侦听器方法签名public void onItemSelect(SelectEvent)提供额外的事件上下文数据。
Where there is no explicit list of ajax events on a compoment in the PrimeFaces documentation, the list of on* javascript callbacks can be used as events by removing the 'on' and using the remainder as an event name. The other answers in this question provides help on these plain dom events too.
如果 PrimeFaces 文档中的组件上没有明确的 ajax 事件列表,则可以通过删除“on”并将剩余部分用作事件名称,将 on* javascript 回调列表用作事件。这个问题中的其他答案也为这些普通的 dom 事件提供了帮助。
回答by Frizz1977
I've got the list in debug mode; first I saw the point at which the error was thrown
我在调试模式下得到了列表;首先我看到了抛出错误的点
javax.faces.view.facelets.TagException: /showcase/partial_submit.xhtml @26,36 Event:changed is not supported. org.primefaces.component.behavior.ajax.AjaxBehaviorHandler.applyAttachedObject(AjaxBehaviorHandler.java:179) org.primefaces.component.behavior.ajax.AjaxBehaviorHandler.apply(AjaxBehaviorHandler.java:157)
javax.faces.view.facelets.TagException: /showcase/partial_submit.xhtml @26,36 Event:changed 不受支持。org.primefaces.component.behavior.ajax.AjaxBehaviorHandler.applyAttachedObject(AjaxBehaviorHandler.java:179) org.primefaces.component.behavior.ajax.AjaxBehaviorHandler.apply(AjaxBehaviorHandler.java:157)
and then I debugged AjaxBehaviorHandler
然后我调试了 AjaxBehaviorHandler
so if you want discover the right list of supported event, you can generate an error (using an event name that is wrong), and follow this way
所以如果你想发现支持事件的正确列表,你可以生成一个错误(使用错误的事件名称),并按照这种方式


