1

我试图在进度条完成后启用命令按钮,但是当我加载页面时,命令按钮已经启用,除此之外它工作正常。

我已经做了一些研究和类似的问题: commandButton not working when disable="true" 最初 但该解决方案对我不起作用。

我做错了什么?有什么我想念的吗?

这是 index.xhtml

            <p:growl id="growl" />
            <h3>Deskarga</h3>
            <p:messages id="messages" showDetail="true" autoUpdate="true"
                closable="true" />
            <p:commandButton value="Start" type="button"
                onclick="pbAjax.start();startButton2.disable();"
                widgetVar="startButton2" />
            <p:commandButton value="Cancel"
                actionListener="#{progressBean.cancel}"
                oncomplete="pbAjax.cancel();startButton2.enable();" />

            <p:progressBar widgetVar="pbAjax" ajax="true" rendered="true"
                value="#{progressBean.progress}" labelTemplate="{value}%"
                styleClass="animated" interval="250">
                <p:ajax event="complete" listener="#{progressBean.onComplete}"
                    update="messages"
                    oncomplete="startButton2.enable();#{progressBean.setDisabled(false)};"/>
            </p:progressBar>


            <p:separator id="separator2" />

            <p:commandButton value="Parseatu" widgetVar="parserButton" ajax="true"
                disabled="#{progressBean.disabled}" actionListener="#{progressBean.parseatu()}"
                update="growl" />

        </h:form>

这是会话范围的托管 bean:

public class ProgressBean implements Serializable {  

    private boolean disabled= true;



    public boolean isDisabled() {
        return disabled;
    }

    public void setDisabled(boolean disabled) {
        this.disabled= disabled;
    }

}  
4

1 回答 1

0

首先,您不能在 oncomplete 属性中使用 bean 方法。这不应该工作

oncomplete="startButton2.enable();#{progressBean.setDisabled(false)};"

如果除了你想使用 oncomplete 属性禁用 ProgressBar 组件,你应该调用 javascript 函数。为此可以使用RemoteCommand或至少更新侦听器方法上的禁用属性

第二。

当我加载页面时,命令按钮已经启用,除此之外它工作正常。

CommandButton 组件默认具有disabledin 属性false。如果你想显示禁用disabled的put 属性true

于 2013-05-26T21:15:48.573 回答