web-dev-qa-db-ja.com

<p:ajax>イベントのリスト

インターネットを検索しましたが、<p:ajax>イベントのリストが見つかりません。誰でも<p:ajax>タグのイベントの完全なリストを提供できますか?

onblurイベントまたは類似のイベントがある場合、特に興味があります。

44
Catfish

"Ajax Behavior Events"PrimeFaces User's Guide で検索できます。サポートされているすべてのコンポーネント用。また、PrimeFacesがOptimus PrimeがPrimeFacesフォーラム <p:ajax>イベントリストでこの関連する質問で行うことを提案しているのは何ですか?

onblurイベントはありません。これはHTML属性名ですが、blurイベントがあります。 HTML属性名のように "on"プレフィックスがないだけです。また、問題のコンポーネントの tagドキュメントのすべての「on *」属性を調べて 、どのコンポーネントが利用可能かを確認できます。 <p:inputText>

33
Daniel

イベントの一般的な概要については、「JavaScript HTML DOMイベント」をご覧ください。

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>要素にのみ添付できます。)

30
Nick Humphrey

残念ながら、Ajaxイベントの文書化は不十分で、包括的なリストは見つかりませんでした。たとえば、ユーザーガイドv。3.5では、p:autoCompleteの-​​itemChangeイベントがリストされていますが、changeイベントの言及は忘れています。

どのイベントがサポートされているかを知りたい場合:

  1. Primefacesソースjarをダウンロードして解凍します
  2. コンポーネントが定義されているJavaScriptファイルを見つけます(たとえば、SelectOneMenuなどのほとんどのフォームコンポーネントはforms.jsで定義されています)
  3. this.cfg.behaviorsリファレンスを検索

たとえば、このセクションは、SelectCheckboxMenuコンポーネントのtoggleSelect eventの起動を担当します。

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

スケジュールは、ユーザーアクションに応答するためのさまざまな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すべてのチェックボックスの変更を切り替えるとき
  • 「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行の再注文時。

ここにもっとあります https://www.primefaces.org/docs/guide/primefaces_user_guide_5_0.pdf

3
Boris_Ndong

デバッグモードでリストを取得しました。最初にエラーがスローされたポイントを見ました

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)

そして、AjaxBehaviorHandlerをデバッグしました

enter image description here

サポートされているイベントの正しいリストを見つけたい場合は、エラーを生成して(間違ったイベント名を使用して)、この方法に従ってください。

2
Frizz1977

可能なイベントのリストはp:ajax自体ではなく、それが使用されるコンポーネントに関連付けられているため、サポートするAjaxイベントをコンポーネントに問い合わせる必要があります。

特定のコンポーネントのajaxイベントを決定するには、複数の方法があります。

1)xhtmlのコンポーネントに尋ねる

コンポーネントをリクエストスコープ変数にバインドし、eventNamesプロパティを出力することにより、リストをxhtmlで直接出力できます。

<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 codeでコンポーネントを確認します:

コンポーネント実装クラスを把握し、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());
    }

}

この出力:

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';-)

最適なオプションは、PrimeFaces btwに限らず、コンポーネント開発者から提供されることを期待して、使用中の特定のコンポーネントのドキュメントを調べることです。 (p:ajaxは、ajaxの動作を提供するコンポーネントに添付できます)。

以前の提案に対する利点は、ドキュメントがイベント名を提供するだけでなく、リスナーがキャッチできるイベントタイプクラスで潜在的に強化されたイベントの拡張された説明も提供することです。

たとえば、次の場合のorg.primefaces.event.SelectEvent

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

リスナーメソッドシグネチャpublic void onItemSelect(SelectEvent)は、追加のイベントコンテキストデータを提供します。

PrimeFacesドキュメントのコンポーネントにajaxイベントの明示的なリストがない場合、on * javascriptコールバックのリストは、「on」を削除し、残りをイベント名として使用することでイベントとして使用できます。この質問の他の回答は、これらの単純なdomイベントに関するヘルプも提供します。

1
Selaron