【问题标题】:Primefaces datatable selection multiple using ajax event no call methodePrimefaces数据表选择多个使用ajax事件无调用方法
【发布时间】:2015-08-11 23:52:40
【问题描述】:

我想在惰性数据模型上使用 ajax 事件 rowSelectCheckBox 调用监听器 选择multiple。我在我的 backing bean 中创建了一个方法,但是这个方法没有被调用。

谁能帮忙解决这个问题?

我的 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>

我的后盾:

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

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

【问题讨论】:

标签: ajax primefaces datatable selection lazydatamodel


【解决方案1】:

尝试删除 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"/>         

【讨论】:

    【解决方案2】:

    尝试删除数据表的选择标签

     <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>
    

    【讨论】:

      猜你喜欢
      • 2013-05-24
      • 2015-05-22
      • 2023-04-03
      • 1970-01-01
      • 2014-11-13
      • 1970-01-01
      • 1970-01-01
      • 2014-08-06
      • 1970-01-01
      相关资源
      最近更新 更多