On行选择仅在Primefaces数据表中触发事件

时间:2013-08-31 09:49:53

标签: ajax primefaces datatable row selection

On Row选择仅触发一次.. 我使用p:datatable显示结果,当我点击一行时,相应的onRowSelect方法正在调用..但它是第一次工作,后来事件没有被触发。

<p:dataTable id="resultsTable"  var="details" paginator="true" rows="10"  
 value="#{memberSearchBean.memberDetails}" 
 emptyMessage="No Records exists for this member"
 selection="#{memberSearchBean.selectedMember}"    selectionMode="single"
 rowKey="#{details.coverNumber}" 
  >

 <p:ajax event="rowSelect" listener="#{memberSearchBean.onRowSelect}"  update=":memberSearchForm:displayselectedMember" oncomplete="PF('displayselectedMember').show()" /> 


    public void onRowSelect(SelectEvent event) {  

        MemberDetailsBean mb =  (MemberDetailsBean) event.getObject(); 

 }

任何帮助将不胜感激..我已经搜索了很多,但我没有得到正确答案..

1 个答案:

答案 0 :(得分:2)

您的JavaScript在执行PF('displayselectedMember').show()时遇到错误,因为您尚未定义widgetVar displayselectedMember。您将它作为ID,PF函数无法识别。当JavaScript遇到错误时,它会停止执行,这会阻止你的函数调用(通过AJAX)。

我建议使用Chrome中的开发者工具或Firefox中的Firebug进行调试。这些中的任何一个都会在控制台中为您输出此错误。

另请注意:PF(widgetVar)表示法在版本3.x中似乎不起作用;它可能是4.x的新手。如果您使用的是3.x,请按以下方式调用:widgetVar.function()