p:blockUI / pe:blockUI:为什么它不适用于我的简单示例?

时间:2016-07-20 11:58:46

标签: primefaces jsf-2.2

我想在执行按钮触发操作时隐藏元素:

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

我尝试使用p:blockUI / pe:blockUI并使用/不使用onstart和oncomplete属性。

我做错了什么?我在其他地方使用blockUI,它工作正常: 唯一的区别是该表是它自己的触发器。

我遵循了this教程。

1 个答案:

答案 0 :(得分:1)

阻止输入似乎不起作用,你可以用面板包装输入并阻止输入。

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>