0

テーブルのフィルタリングが終了したら、backingbean のメソッドを呼び出します。Primefacesを使用すると、データテーブルは次のようになります。

<p:dataTable id="tabla_gral" rendered="#{consumoMaterial.verTabla}" var="item" paginator="true" rows="15" rowKey="#{item.no}" value="#{consumoMaterial.listadoConsumo}" filteredValue="#{consumoMaterial.listadoConsumoFiltered}">
  <p:ajax event="filter" listener="#{consumoMaterial.actualizarSaldos}" update=":form2:tabla_gral" />
  <f:facet name="header">
    <h:outputText value="Búsqueda de Consumo por: #{consumoMaterial.tipoBuscar}: '#{consumoMaterial.codigo}'" />
  </f:facet>
  <p:column exportable="#{consumoMaterial.no}" rendered="#{consumoMaterial.no}" id="cclave" sortBy="#{item.no}" filterBy="#{item.no}" filterMatchMode="contains">
    <f:facet name="header">
      <h:outputText value="Nro" />
    </f:facet>
    <h:outputText value="#{item.no}" />
  </p:column>
  <p:column exportable="#{consumoMaterial.centroCosto}" rendered="#{consumoMaterial.centroCosto}" id="cconcepto" sortBy="#{item.centroCosto}" filterBy="#{item.centroCosto}" filterMatchMode="contains">
    <f:facet name="header">
      <h:outputText value="Centro de Costo" />
    </f:facet>
    <h:outputText value="#{item.centroCosto}" />
  </p:column>
  <p:column exportable="#{consumoMaterial.codigoAlmacen}" rendered="#{consumoMaterial.codigoAlmacen}" id="ctipo" sortBy="#{item.codigoAlmacen}" filterBy="#{item.codigoAlmacen}" filterMatchMode="contains">
    <f:facet name="header">
      <h:outputText value="Almacén" />
    </f:facet>
    <h:outputText value="#{item.codigoAlmacen}" />
  </p:column>
</p:dataTable>

ajax event="filter"終了時ではなくフィルタリング中のため、動作しません。

4

1 に答える 1

0

次のことができます: フィルタ イベントで、oncomplete または onsuccess (ターゲットによって異なります) で JavaScript 関数を呼び出し、JavaScript 関数がコマンド ボタンに対してクリック イベントを発生させ、そのコマンド ボタンに必要なアクション コードを配置します。

<h:form id="form">  
    <script type="text/javascript">
                    function test(){
                        $(PrimeFaces.escapeClientId('form:btn')).click();
                    }
                </script>
                <p:commandButton  style="display:none !important" id="btn" oncomplete="alert('ab');" value="SB"/>
                <p:dataTable   var="carr" value="#{tabview.l1}" id="carList" >  
                    <p:ajax event="filter" oncomplete="test();"/>
                    <p:column filterMatchMode="contains" filterBy="#{carr.model}" headerText="Model" style="width:30%">  
                        <h:outputText value="#{carr.model}" />  
                    </p:column>  
                    <p:column headerText="MANUFAC" style="width:20%">  
                        <h:outputText value="#{carr.manufacturer}" />  
                    </p:column>  
                </p:dataTable>
 </h:form>  
于 2013-04-16T01:23:40.553 に答える