ปุ่มคำสั่ง Prime faces ไม่ทำงานหลังจากเปิดใช้งาน

ฉันกำลังพยายามเปิดใช้งานปุ่มคำสั่งหลังจากแถบความคืบหน้าเสร็จสมบูรณ์ แต่เมื่อฉันโหลดเพจ ปุ่มคำสั่งถูกเปิดใช้งานแล้ว นอกเหนือจากนี้ก็ยังทำงานได้ดี

ฉันได้ทำการวิจัยและปัญหาที่คล้ายกันแล้ว: commandButton ไม่ทำงานเมื่อปิดการใช้งาน=“true ” ในตอนแรก แต่วิธีแก้ปัญหาไม่ได้ผลสำหรับฉัน

ฉันทำอะไรผิด? มีบางอย่างที่ฉันขาดหายไปหรือไม่?

นี่คือดัชนี.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;
    }

}  

person GorkaElge    schedule 26.05.2013    source แหล่งที่มา


คำตอบ (1)


ประการแรก คุณไม่สามารถใช้วิธี bean ในแอตทริบิวต์ oncomplete ได้ สิ่งนี้ไม่ควรทำงาน

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

หากนอกเหนือจากคุณต้องการปิดการใช้งานคอมโพเนนต์ ProgressBar โดยใช้แอตทริบิวต์ oncomplete คุณควรเรียกใช้ฟังก์ชันจาวาสคริปต์ สำหรับสิ่งนี้สามารถใช้ RemoteCommand หรืออย่างน้อยก็อัปเดตแอตทริบิวต์ที่ปิดใช้งานบนวิธี Listener

ประการที่สอง

เมื่อฉันโหลดเพจ ปุ่มคำสั่งถูกเปิดใช้งานแล้ว นอกเหนือจากนี้ยังใช้งานได้ดี

คอมโพเนนต์ CommandButton มีแอตทริบิวต์ disabled ใน false เป็นค่าเริ่มต้น หากคุณต้องการให้แสดงปิดการใช้งาน ให้ใส่แอตทริบิวต์ disabled ใน true

person Cesar Miguel    schedule 26.05.2013
comment
ขอบคุณสำหรับคำตอบ ฉันจะลองใช้ RemoteCommad ฉันกำลังเรียนรู้ PrimeFaces และฉันรู้เฉพาะองค์ประกอบที่พบบ่อยที่สุดเท่านั้น - person GorkaElge; 28.05.2013
comment
มันแก้ปัญหาของฉันได้ ขอบคุณ! แต่ฉันต้องเพิ่มคอนสตรัคเตอร์ให้กับการตั้งค่า bean ที่ปิดใช้งานให้เป็นจริง - person GorkaElge; 31.05.2013