1

我有以下树表,其中一列中有嵌套的单选按钮。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 树节点单选按钮上正确进行。随后选择任何其他二级树节点单选按钮,其中已从该子树中选择了树节点,先前会触发相同的(正确的?)ajax 请求,但不会中断支持 bean 方法dealerShipSelectionBean.updateDetailEvent(e)

例如
,选择 ba - 正确调用支持 bean 方法 .updateDetailEvent(e) 的
Ajax 选择 bb - 进行 Ajax 调用但不调用支持 bean 方法 .updateDetailEvent(e)。
选择 ab -
正确
调用支持 bean 方法 .updateDetailEvent(e)正确
选择 b - Ajax 调用支持 bean 方法 .updateDetailEvent(e) 正确
选择 ab - Ajax 调用但不调用支持 bean 方法 .updateDetailEvent(e)。
select bc - 进行了 Ajax 调用,但不调用支持 bean 方法 .updateDetailEvent(e)。

非常感谢任何帮助。

primefaces 3.6-SNAPSHOT mojoraa 2.1.18 tomcat 7

4

0 回答 0