PrimeFace DataTable を使用しています。それに ajax rowSelect イベントを追加したいと思います。ただし、行がクリックされると、イベントは発生しません。
私のテーブルは次のようにデカールされています:
<h:from>
....
<h:panelGroup id="forumPanelGroup" layout="block" styleClass="messagesPanel" rendered="#{socialAdvertiserTemplateManagedBean.displayForum}" >
<p:dataTable
id="forumDataTable"
resizableColumns="true"
var="post"
value="#{forumManagedBean.posts}"
scrollable="true"
scrollHeight="300"
paginator="true"
rows="10"
rowKey="#{post.id_value}"
emptyMessage="No posts found for the given criteria"
widgetVar="forumTable"
selectionMode="single"
tableStyle="width:auto"
paginatorPosition="top">
私はそこに ajax イベントを次のように持っています:
<p:ajax event="rowSelect" update=":mainForm:displayPost" listener="#{forumManagedBean.rowSelect}" />
そして、バッキング Bean には、次の関数があります。
public void rowSelect(SelectEvent selectEvent)
{
System.out.println("Hello World");
ForumPost post = (ForumPost) selectEvent.getObject();
selectedPost = post;
}
イベントがトリガーされない原因となる私の宣言の問題を誰でも見ることができますか? 私も FireBug でそれを見て、行がクリックされた後にこれが送信されるのを見ました:
javax.faces.ViewState 1786545179464296127:-2498355873814808136 javax.faces.behavior.even... 行選択 javax.faces.partial.ajax 真 javax.faces.partial.event rowSelect javax.faces.partial.execu... mainForm:forumDataTable javax.faces.partial.rende... mainForm:displayPost javax.faces.source mainForm:forumDataTable メインフォーム メインフォーム mainForm:forumDataTable_i... 1 mainForm:forumDataTable_s... 0,0 mainForm:forumDataTable_s... 1 メインフォーム:j_idt181_active 0 メインフォーム:j_idt70 メインフォーム:j_idt72
したがって、rowSelect を送信しているように見えます。しかし、私のサーバー側はそれを拾っていません。