Tim
Tim

Reputation: 4274

p:blockUI / pe:blockUI: Why doesn't it work in my simple example?

I would like to hide an element while a button triggered action is being performed:

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

I tried with p:blockUI / pe:blockUI and with/without the onstart and oncomplete attributes.

What am I doig wrong ? I use blockUI somewhere else, and it is working fine: The only difference is that the table is its own trigger.

I followed this tutorial.

Upvotes: 1

Views: 3796

Answers (1)

SiMag
SiMag

Reputation: 596

Block the input seems to not work, you can wrap the input with a panel and block it.

PrimeFaces Extensions:

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

Upvotes: 2

Related Questions