2016-08-05 41 views
-1

當我在dataTable中的行上clik時,我的onRowSelect方法中的參數selectEvent爲null,任何想法爲什麼?p:dataTable onRowSelect - SelectEvent爲null

form.xhtml文件:

<h:form> 
     <p:dataTable var="row" 
        value="#{backingBean.model}" 
        lazy="true" 
        rows="#{backingBean.model.getTablePageSize()}" 
        rowKey="#{row.id}" 
        rowsPerPageTemplate="#{loggedUserBean.getPageSizes()}" 
        paginator="true" paginatorPosition="bottom" 
        paginatorTemplate="{PreviousPageLink} {CurrentPageReport} {NextPageLink} {RowsPerPageDropdown}" 
        selection="#{backingBean.model.selectedRow}" 
        selectionMode="single" 
        emptyMessage="#{commonProperties.dataTableEmptyMessage}" 
        emptyMessagePosition="center"> 
      <f:facet name="header"> 
       <h:outputText value="#{properties.title}"/> 
      </f:facet> 

      <p:ajax event="rowSelect" 
        listener="#{controller.onRowSelect(args)}"> 
      </p:ajax> 

控制器的方法:

public void onRowSelect(SelectEvent event) { 
     Row row = (Row) event.getObject(); 
     getBackingBean().getModel().setSelectedRow(row); 
     RequestContext.getCurrentInstance().execute("updateButtons();"); 
    } 
+1

你是怎麼來到這樣創造的呢?我從來沒有見過任何教程或展示過這樣做的地方。 – Kukeltje

回答

2

你在你的XHTML提供不必要的爭吵。

<p:ajax event="rowSelect" listener="#{controller.onRowSelect(args)}"> 
</p:ajax> 

它應該是這樣的:

<p:ajax event="rowSelect" listener="#{controller.onRowSelect}"> 
</p:ajax> 
+1

而調用方法**的事實只能表示參數爲null。因爲如果它是例如不是null和一個字符串,方法簽名不會匹配,你會得到錯誤。 – Kukeltje