2016-07-20 20 views
0

Ich möchte ein Element verbergen, während eine Schaltfläche Aktion ausgelöst ausgeführt wird:p: blockUI/pe: blockUI: Warum funktioniert es nicht in meinem einfachen Beispiel?

<h:form id="sendtxform"> 
     <p:panelGrid columns="1" styleClass="ui-noborder">  
      <pe:blockUI block="input" widgetVar="blockUIWidget"> 
      LOADING<br /> 
       <p:graphicImage name="images/ajax-loader.gif" /> 
      </pe:blockUI> 

      <p:commandButton id="command" value="ISSUE APP" 
       actionListener="#{transactionXmlController.getTxDataPredefined}" 
       ajax="true" update="growl,input" 
       onstart="PF('blockUIWidget').block();" 
       oncomplete="PF('blockUIWidget').unblock();"> 
      </p:commandButton> 

      <p:inputTextarea id="input" cols="150" rows="30" autoResize="false" 
       value="#{transactionXmlEditableModel.xml}" /> 
     </p:panelGrid> 
    </h:form> 

Ich habe versucht, mit p: BlockUI/pe: BlockUI und mit/ohne onstart und onComplete Attribute.

Was mache ich falsch? Ich benutze blockUI woanders, und es funktioniert gut: Der einzige Unterschied ist, dass die Tabelle einen eigenen Trigger ist.

Ich folgte this Tutorial.

+0

Die panelgrid Sie? Haben Sie versucht, es außerhalb des panelGrids zu platzieren und zu prüfen, ob Sie es dann auslösen können? Und welche Version verwendest du? – Kukeltje

+0

Ich wollte die EingabeTextArea blockieren, aber das Raster ist auch in Ordnung. Aber es funktioniert nicht. Ich habe getan, was du vorgeschlagen hast. Wie zuvor passiert nichts. Ich benutze Primefaces Version 6 – Tim

+1

Ich denke, Sie mischen p: blockUI und pe: blockUI, die primefaces Erweiterungen Komponente hat nicht das Blockattribut, verwenden Ziel stattdessen – SiMag

Antwort

1

Blockieren Sie die Eingabe scheint nicht zu funktionieren, können Sie die Eingabe mit einem Panel umwickeln und blockieren. Extensions

PrimeFaces:

<h:form id="sendtxform"> 
    <p:panelGrid columns="1" styleClass="ui-noborder"> 
     <pe:blockUI target="panel" widgetVar="blockUIWidget"> 
     LOADING<br /> 
      <p:graphicImage name="images/ajax-loader.gif" /> 
     </pe:blockUI> 

     <p:commandButton id="command" value="ISSUE APP" 
      actionListener="#{transactionXmlController.getTxDataPredefined}" 
      ajax="true" update="input" 
      onstart="PF('blockUIWidget').block();" 
      oncomplete="PF('blockUIWidget').unblock();"> 
     </p:commandButton> 

     <p:panel id="panel"> 
      <p:inputTextarea id="input" cols="150" rows="30" autoResize="false" 
      value="#{transactionXmlEditableModel.xml}" /> 
     </p:panel> 
    </p:panelGrid> 
</h:form> 

PrimeFaces:

<h:form id="sendtxform"> 
    <p:panelGrid columns="1" styleClass="ui-noborder"> 
     <p:blockUI block="panel" trigger="command"> 
     LOADING<br /> 
      <p:graphicImage name="images/ajax-loader.gif" /> 
     </p:blockUI> 

     <p:commandButton id="command" value="ISSUE APP" 
      actionListener="#{transactionXmlController.getTxDataPredefined}" 
      ajax="true" update="input"> 
     </p:commandButton> 

     <p:panel id="panel"> 
      <p:inputTextarea id="input" cols="150" rows="30" autoResize="false" 
      value="#{transactionXmlEditableModel.xml}" /> 
     </p:panel> 
    </p:panelGrid> 
</h:form> 
+0

Danke, aber es funktioniert nicht. Verwenden wir verschiedene Versionen? (2.2 für mich) – Tim

+0

Ich habe gerade versucht und es funktioniert, ich benutze jsf 2.2, pf 6 e pfe 6. Haben Sie Fehler in js Konsole? – SiMag

+0

Ich sah in Ihrem Code, dass Sie Blockattribut haben. PF-Erweiterungen haben dieses Attribut nicht, verwenden Sie target. – SiMag