Кнопка Prime Faces не работает после включения

Я пытаюсь включить командную кнопку после завершения индикатора выполнения, но когда я загружаю страницу, командная кнопка уже включена, кроме этого она работает нормально.

Я провел некоторое исследование и аналогичную проблему: ” изначально Но решение не сработало для меня.

Что я делаю неправильно? Есть ли что-то, что мне не хватает?

Это 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>

И это управляемый компонент сеанса:

public class ProgressBean implements Serializable {  

    private boolean disabled= true;



    public boolean isDisabled() {
        return disabled;
    }

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

}  

person GorkaElge    schedule 26.05.2013    source источник


Ответы (1)


Во-первых, вы не можете использовать метод bean в атрибуте oncomplete. Это не должно работать

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

Если, кроме того, вы хотите отключить компонент ProgressBar с помощью атрибута oncomplete, вам следует вызвать функцию javascript. Для этого можно использовать RemoteCommand или хотя бы обновить атрибут disabled в методе слушателя.

Во-вторых.

когда я загружаю страницу, командная кнопка уже включена, кроме этого она работает нормально.

Компонент CommandButton имеет атрибут disabled в false по умолчанию. Если вы хотите, чтобы отображение было отключено, поместите атрибут disabled в true

person Cesar Miguel    schedule 26.05.2013
comment
Спасибо за ответ, я попробую использовать RemoteCommad, я изучаю PrimeFaces и знаю только самые распространенные элементы. - person GorkaElge; 28.05.2013
comment
Это решило мою проблему, спасибо! Но мне также пришлось добавить конструктору значение параметра bean для отключенного значения true. - person GorkaElge; 31.05.2013