2012-04-09 89 views
0

我使用primefaces佈局組件和在嵌入式形式具有與組件的困難:primefaces部件不更新支持bean

<p:selectOneRadio id="customRadio" 
        value="#{exams.examQuestions.currentQuestion.selectedAnswer}" 
        layout="custom"> 

<f:selectItem itemLabel="Option1" 
        itemValue="#{exams.examQuestions.currentQuestion.examentry.answer1}" 
        rendered="#{exams.examQuestions.currentQuestion.render_question1}"/> 

    <f:selectItem itemLabel="Option2" 
        itemValue="#{exams.examQuestions.currentQuestion.examentry.answer2}" 
        rendered="#{exams.examQuestions.currentQuestion.render_question2}"/> 

    <f:selectItem itemLabel="Option3" 
        itemValue="#{exams.examQuestions.currentQuestion.examentry.answer3}" 
        rendered="#{exams.examQuestions.currentQuestion.render_question3}"/> 

    <f:selectItem itemLabel="Option4" 
        itemValue="#{exams.examQuestions.currentQuestion.examentry.answer4}" 
        rendered="#{exams.examQuestions.currentQuestion.render_question4}"/> 

    <f:selectItem itemLabel="Option5" 
        itemValue="#{exams.examQuestions.currentQuestion.examentry.answer5}" 
        rendered="#{exams.examQuestions.currentQuestion.render_question5}"/> 

    <h:panelGrid columns="1"> 
    <p:radioButton id="opt1" 
     for="customRadio" 
     itemIndex="0" 
     rendered="#{exams.examQuestions.currentQuestion.render_question1}"/> 
    <h:outputLabel for="opt1" 
     value="#{exams.examQuestions.currentQuestion.examentry.answer1}" 
     rendered="#{exams.examQuestions.currentQuestion.render_question1}"/> 
    <br/> 
    <p:radioButton id="opt2" for="customRadio" 
     itemIndex="1" 
     rendered="#{exams.examQuestions.currentQuestion.render_question2}"/> 
    <h:outputLabel for="opt2" 
     value="#{exams.examQuestions.currentQuestion.examentry.answer2}" 
     rendered="#{exams.examQuestions.currentQuestion.render_question2}"/> 
    <br/> 
    <p:radioButton id="opt3" 
     for="customRadio" 
     itemIndex="2" 
     rendered="#{exams.examQuestions.currentQuestion.render_question3}"/> 
    <h:outputLabel for="opt3" 
     value="#{exams.examQuestions.currentQuestion.examentry.answer3}" 
     rendered="#{exams.examQuestions.currentQuestion.render_question3}"/> 
    <br/> 
    <p:radioButton id="opt4" 
     for="customRadio" 
     itemIndex="3" 
     rendered="#{exams.examQuestions.currentQuestion.render_question4}"/> 
    <h:outputLabel for="opt4" 
     value="#{exams.examQuestions.currentQuestion.examentry.answer4}" 
     rendered="#{exams.examQuestions.currentQuestion.render_question4}"/> 
    <br/> 
    <p:radioButton id="opt5" 
     for="customRadio" 
     itemIndex="4" 
     rendered="#{exams.examQuestions.currentQuestion.render_question5}"/> 
    <h:outputLabel for="opt5" 
     value="#{exams.examQuestions.currentQuestion.examentry.answer5}" 
     rendered="#{exams.examQuestions.currentQuestion.render_question5}"/> 
    </p:selectOneRadio> 

背襯豆exams.examQuestions.currentQuestion.selectedAnswer沒有更新時,我選擇不同的項目,怎麼樣?如果我從同一個表單調用這個組件的「customRadio」更新,那麼支持bean會自我更新,但是我無法在表單外執行此操作。請幫忙!

+0

當時在那裏我已經問題指出? – Fallup 2012-04-12 07:09:56

+0

我需要在每個之後強制更新以更新輔助bean。 – Liver 2012-04-12 10:49:28

+0

是的,但你需要編輯你的代碼。您應該在最後一個「選擇項目」後終止「」。您將在代碼的末尾終止它,查看我發佈的鏈接。另外,如果你想從另一個表單更新一個組件,你可以像這樣調用更新'update =「:formIdOfComponent:componentID」'。 – Fallup 2012-04-12 11:46:16

回答

0

我真的不知道你到底想要什麼(因爲我在你的示例代碼中沒有看到任何表單),但是我想你的問題是你沒有關閉p:selectOneRadio在你上一次f :選擇信息...

請仔細看看primefaces展示selectOneRadio

此外,如果你想更新從另一種形式的組件調用Update這樣update=":formIdOfComponent:componentID"

+0

感謝您提供關於更新不同表格的提示。超級有用。 – Liver 2012-04-12 16:02:05

+0

@Liver歡迎您。我已經添加它來回答。 – Fallup 2012-04-12 16:30:56