gpt4 book ai didi

ajax - 子表ajax调用中的SelectOneRadio不起作用

转载 作者:行者123 更新时间:2023-12-03 21:52:02 24 4
gpt4 key购买 nike

我正在使用 primefaces 3.4.1 并且我试图在 subtable 中使用带有 ajax 调用的 SelectOneRadio
但它不起作用,没有调用 ajax 监听器

<p:dataTable id="competenciesTable" var="competency" value="#{evaluationControl.currentEvaluation.evaluatedCompetencies}">
<f:facet name="header">
<h:outputText value="#{gchmsg['global.competencies']}" />
</f:facet>
<p:subTable id="descriptorsTable" var="descriptor" value="#{competency.evaluationDescriptors}">
<f:facet name="header">
<h:outputText class="strong" value="#{competency.competency.name}" />
</f:facet>
<p:column>#{descriptor.descriptor.description}</p:column>
<p:column>
<p:selectOneRadio required="true" styleClass="calification_scale" id="descriptorCalification" value="#{descriptor.calification}" converter="calification">
<f:selectItems value="#{competency.competency.calificationSchema.scales}" var="scale" itemLabel="#{scale.qualitativeValue}" itemDescription="#{scale.description}" itemValue="#{scale}" />
<p:ajax process="@this" listener="#{evaluationControl.handleRadioChange}" update=":evaluationForm:finalResultText, descriptorCalificationMsg" />
</p:selectOneRadio>
<p:message id="descriptorCalificationMsg" for="descriptorCalification" display="icon" />
</p:column>
</p:subTable>
</p:dataTable>

evaluationControl 是一个 SessionBean,方法是
public void handleRadioChange() {
log.debug("Listener called");
}

帮助表示赞赏。

最佳答案

经过过多的调试和测试,我终于发现了问题,primefaces Subtable 组件没有将值放回 Backing Bean 中,您必须处理整个 DataTable 组件,所以我不得不删除 required="true" (以避免验证错误)为每个 selectOneRadio 并添加 process="competenciesTable"p:ajax

关于ajax - 子表ajax调用中的SelectOneRadio不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14551145/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com