我有一个p:datatable,可以在问卷的一部分中迭代一系列问题。对于每个问题,可以有多个答案。一节中的所有问题都有相同数量的潜在答案。因此,我希望能够根据可能的答案数创建动态数量的列,并将每列中的selectOneRadio按钮渲染为同一个radioGroup的一部分,以便只能选择一个。
但是,当尝试使用单选按钮的自定义布局时,我可以在同一行中选择多个,这样它们就不会作为一个组。有谁知道达到预期结果的最佳方法?
<ui:composition>
<p:dataTable value="#{questions}" var="question"
styleClass="pro_category_table">
<f:facet name="header">
<h:outputText value="#{msg[category.categoryType.label]}"></h:outputText>
</f:facet>
<p:column headerText="#{msg['long_pro_question_intro1']}">
<h:outputText value="#{msg[question.questionTextKey]}" />
</p:column>
<p:column>
</p:column>
<p:columns value="#{category.answerChoicesForSection}" var="categoryHeader" columnIndex="i">
<f:facet name="header">
#{categoryHeader}
</f:facet>
<p:panel>
<p:selectOneRadio id="customRadio" value="#{question.selectedAnswers.answers[0]}" layout="custom"
styleClass="pro_select_one_of_many">
<p:ajax update="@(.pro_navigation_button_panel)"/>
<f:selectItems var="answer" value="#{question.validAnswers}"
itemDescription="#{msg[answer.labelKey]}"
itemValue="#{answer.value}" itemLabel=""></f:selectItems>
</p:selectOneRadio>
<p:radioButton for="customRadio" itemIndex="#{i}"></p:radioButton>
</p:panel>
</p:columns>
</p:dataTable>
</ui:composition>