2015-05-29 67 views
0

我想使用Lazy Data Model 上的ajax事件rowSelectCheckBox與選定的multiple調用偵聽器。我在我的支持bean中創建了一個方法,但不調用此方法。使用ajax事件無調用方法的Primefaces數據表選擇倍數

任何人都可以幫助解決這個問題嗎?

我XHTML:

<h:form id="frmDataTableMutasi"> 
<p:outputLabel value="Daftar Toko Akan Dimutasi" 
    styleClass="outputlabel-title" /> 
<br /> 
<p:dataTable widgetVar="widgetDataModel" var="dataModel" 
    id="dataTable" value="#{tokoListBean.lfaStoreDataModel}" lazy="true" 
    paginator="true" rows="5" paginatorPosition="bottom" 
    emptyMessage="No record found" 
    selection="#{tokoListBean.selectedLfaStore}" 
    selectionMode="multiple" 
    currentPageReportTemplate="{currentPage}/{totalPages}" 
    paginatorTemplate="{FirstPageLink} {PreviousPageLink}  {CurrentPageReport} {NextPageLink} {LastPageLink}" 
    rowsPerPageTemplate="5,10,15"> 

    <p:ajax event="rowSelectCheckbox" 
     listener="#{tokoListBean.onRowSelect}" update=":frmBtn:btnMutasi" /> 
    <p:ajax event="rowUnselectCheckbox" 
     listener="#{tokoListBean.onRowUnselect}" update=":frmBtn:btnMutasi" /> 

    <p:column selectionMode="multiple" 
     style="width:16px;text-align:center" /> 

    <p:column> 
     <h:outputText value="#{dataModel.storeCode}" /> 
    </p:column> 
    <p:column> 
     <h:outputText value="#{dataModel.storeName}" /> 
    </p:column> 
    <p:column> 
     <h:outputText value="#{dataModel.snStoreType}" /> 
    </p:column> 

    </p:dataTable> 

我支持bean:

public void onRowSelect(SelectEvent event) { 
    System.out.println("onRowSelect"); 
    this.enableBtnMutasi = false; 
} 

public void onRowUnselect(UnselectEvent event) { 
    System.out.println("onRowUnselect"); 
    this.enableBtnMutasi = true; 
} 
+0

見[問](約MCVE的部分)。但首先閱讀http://stackoverflow.com/questions/2118656/commandlink-commandbutton-ajax-backing-bean-action-listener-method-not-invoked – Kukeltje

回答

1

嘗試刪除數據表

<p:dataTable widgetVar="widgetDataModel" var="dataModel" 
    id="dataTable" value="#{tokoListBean.lfaStoreDataModel}" lazy="true" 
    paginator="true" rows="5" paginatorPosition="bottom" 
    emptyMessage="No record found" 
    selection="#{tokoListBean.selectedLfaStore}" 

    currentPageReportTemplate="{currentPage}/{totalPages}" 
    paginatorTemplate="{FirstPageLink} {PreviousPageLink}{CurrentPageReport} {NextPageLink} {LastPageLink}" 
    rowsPerPageTemplate="5,10,15"> 

<p:ajax event="rowSelectCheckbox" 
     listener="#{tokoListBean.onRowSelect}" update=":frmBtn:btnMutasi" /> 
    <p:ajax event="rowUnselectCheckbox" 
     listener="#{tokoListBean.onRowUnselect}" update=":frmBtn:btnMutasi" /> 

    <p:column selectionMode="multiple" 
     style="width:16px;text-align:center" /> 
    enter code here 
    // othres columns 

    </datatable> 
+0

嘗試,但徒勞無功 – nosnhoj

0

的選擇標記嘗試刪除widgetVar =「widgetDataModel 「

並添加以下代碼:

<p:ajax event="toggleSelect" listener="#{tokoListBean.onRowToggle()}" update=":frmBtn:btnMutasi"/>   
<p:ajax event="rowSelectCheckbox" listener="#{tokoListBean.onRowSelect}" update=":frmBtn:btnMutasi"/>   
<p:ajax event="rowUnselectCheckbox" listener="#{tokoListBean.onRowUnselect}" update=":frmBtn:btnMutasi"/>   
<p:ajax event="rowSelect" listener="#{tokoListBean.onRowSelect}" update=":frmBtn:btnMutasi"/>   
<p:ajax event="rowUnselect" listener="#{tokoListBean.onRowUnselect}" update=":frmBtn:btnMutasi"/>