我在一列中使用嵌套的无线电选择按钮进行了以下处理。 Primefaces Ajax标签部分提交值更改。
<p:treeTable value="#{carBean.partsTree}" var="document" id="multiSelect"
selection="#{carBean.selectedNodes}" selectionMode="single" >
<p:column style="width:150px" styleClass="column1asd">
<f:facet name="header">
DealerShip
</f:facet>
<h:outputText value="#{document.name}" />
</p:column>
<p:column style="width:100px;text-align: center ">
<f:facet name="header">
Car Types
</f:facet>
<h:outputText value="#{document.numCarTypes}" />
</p:column>
<p:column style="width:100px;text-align: center">
<f:facet name="header">
Contacts
</f:facet>
<h:outputText value="#{document.contactName}" />
</p:column>
<p:column style="width:100px;text-align: center">
<f:facet name="header">
Contact Emails
</f:facet>
<h:outputText value="#{document.dealerShipContactEmail}" />
</p:column>
<p:column style="width:100px">
<f:facet name="header">
Retail | Commercial | Distribution
</f:facet>
<p:selectOneRadio value="#{document.selectedContactOption}" >
<f:selectItem itemValue="Retail" itemLabel="" style="margin-left:"/>
<f:selectItem itemValue="Commercial" itemLabel="" />
<f:selectItem itemValue="Distribution" itemLabel="" />
<p:ajax update=":moreLikeThis:count" process="@all" listener="#{dealerShipSelectionBean.updateDetailEvent(e)}" />
</p:selectOneRadio>
</p:column>
</p:treeTable>
假设数据视图:
Level
R 1 2
|
| a
-----
| |
| | aa
| -----
| | ab
| -----
|
| b
-----
| |
| | ba
| -----
| | bb
| -----
| | bc
| -----
| | bd
| -----
| | be
| -----
问题
Ajax调用支持bean方法dealerShipSelectionBean.updateDetailEvent(e)在每个1级树节点单选按钮上都正确。
Ajax调用支持bean方法dealerShipSelectionBean.updateDetailEvent(e)在第一级2树节点单选按钮上正确生成。 随后选择任何其他第二级treenode单选按钮,其中从该子树中选择了treenode之前会触发相同的(正确的?)ajax请求,但不会进入支持bean方法dealerShipSelectionBean.updateDetailEvent(e)
例如
select ba - Ajax调用支持bean方法.updateDetailEvent(e)正确生成
选择bb - 进行Ajax调用,但不调用辅助bean方法.updateDetailEvent(e)
select ab - Ajax调用支持bean方法.updateDetailEvent(e)正确生成
选择a - Ajax调用支持bean方法.updateDetailEvent(e)正确生成
选择a - Ajax调用支持bean方法.updateDetailEvent(e)正确生成
select b - Ajax调用支持bean方法.updateDetailEvent(e)正确生成
选择ab - Ajax调用但是没有调用支持bean方法.updateDetailEvent(e)
选择bc - 进行Ajax调用,但不调用辅助bean方法.updateDetailEvent(e)。
非常感谢任何帮助。
primefaces 3.6-SNAPSHOT mojoraa 2.1.18 tomcat 7