Primefaces p:blockUI/pe:blockUI:Why不';在我的简单示例中,它不起作用吗?

Primefaces p:blockUI/pe:blockUI:Why不';在我的简单示例中,它不起作用吗?,primefaces,jsf-2.2,Primefaces,Jsf 2.2,我想在执行按钮触发的操作时隐藏元素: <h:form id="sendtxform"> <p:panelGrid columns="1" styleClass="ui-noborder"> <pe:blockUI block="input" widgetVar="blockUIWidget"> LOADING<br /> <p:grap

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

<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,它工作正常: 唯一的区别是表是它自己的触发器


我遵循了教程。

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

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>

加载
素面:

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

加载

你指的是panelgrid?你有没有试着把它放在panelGrid外面,看看你能不能触发它?你用的是什么版本?我想封锁输入区,但网格也很好。但它不起作用。我照你的建议做了。和以前一样,什么也没发生。我使用的是Primefaces版本6我想你混合了p:blockUI和pe:blockUI,Primefaces扩展组件没有block属性,请改用target,如果你将输入作为“目标”而不是InputExtArea,它会起作用吗?谢谢,但它不起作用。我们使用不同的版本吗?(2.2对我来说)我刚刚试过,它可以工作,我使用JSF2.2,PF6和PFE6。你在js控制台中出错了吗?我在你的代码中看到你有block属性。PF扩展并没有那个属性,使用target。我在PF扩展上有问题。我很乐意使用p:blockUI解决方案。我添加了pf解决方案