2012-04-09 92 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