AJAX 更新或呈现 "points" 正确的 clientId 但不更新数据表中的值

AJAX update or render "points" the correct clientId but does not update the value in datatable

我想通过处理位于数据表内另一列中的 <h:selectOneRadio> 的值来更新一列中的 <h:outputText>:

...
            <rich:column>           
                    <h:selectOneRadio id="mainSelect" value="#{row.select1}"  required="true" > 
                        <f:selectItems value="#{row.responses}" var="resp" itemLabel="#{resp.label}" itemValue="#{resp.response}" />                                
                        <a4j:ajax event="change"    render="outputPanel1"
                                    listener="#{subTableView.updateSecond(row.select1)}"  />    
                    </h:selectOneRadio>
            </rich:column>
            <rich:column>
                <a4j:outputPanel id="outputPanel1">
                        <h:outputText value="#{row.select1}"/>
                        <p>#{component.clientId}</p>
               </a4j:outputPanel>
            </rich:column>
...

请参阅下方我的数据表和 Firebug 的 HTML 面板下方指向(由 Firebug 自动以黄色突出显示)正确的 clientId 当单击单选按钮时,但从 <span> 内的视图构建时加载的数据库中获取的值不会更改(在本例中从 YesRNoR)。

NoR 值归因于正确的无线电组件,如下所示,但不会替换 YesR:

好处是每一行的进程都是独立的,selectOneRadio进程指向每一行对应的outputPanel1。我尝试了 <p:ajax update=""><f:ajax render=""><h:panelGroup> 的不同组合,但都没有成功。我还尝试了 clickchangevalueChange 等不同的事件,但都没有成功。

outputPanel1 中的值未更新的原因可能是什么?

我正在使用 WildFly 9.0.2 (Mojarra 2.2.12) 和 RichFaces 4.5.8(或 PF5.3)(在不同的浏览器上测试过)。

编辑(对于一个土豆):

 <rich:dataTable    id="grid" width="5000"  
                                value="#{subTableView.getAllHeaders()}"
                                var="head" >

                <rich:column colspan="3" >
                    <h:outputText value="#{head.name}" />
                </rich:column>

                <rich:collapsibleSubTable   id="cellGrid"  value="#{head.questions}" var="row"  >

                    <rich:column>
                            <h:outputText value="#{row.question}" />
                    </rich:column>

                    <rich:column>           
                        <h:selectOneRadio id="mainSelect" value="#{row.select1}"  required="true" > 
                            <f:selectItems value="#{row.responses}" var="resp" itemLabel="#{resp.label}" itemValue="#{resp.response}" />                                
                            <a4j:ajax event="change"    render="outputPanel1"
                                        listener="#{subTableView.updateSecond(row.select1)}"  />    
                        </h:selectOneRadio>
                </rich:column>
                <rich:column>
                    <a4j:outputPanel id="outputPanel1">
                            <h:outputText value="#{row.select1}"/>
                            <p>#{component.clientId}</p>
                   </a4j:outputPanel>
                </rich:column>


                </rich:collapsibleSubTable>

            </rich:dataTable>

豆豆:

@ManagedBean
@ViewScoped
public class SubTableView implements Serializable{

    private static final long serialVersionUID = 1L;

    @EJB
    private PublicService publicService;


    private List<Response> responses;
    private Response response = new Response();

    private List<Header> headers;
    private Header header = new Header();

    @PostConstruct
    public void init() {

        this.responses = publicService.getAllResponses();

        this.headers = publicService.getAllHeaders();
    }

+getters & setters

服务:

@PersistenceContext
    private EntityManager entityManager;



   public List<Header> getAllHeaders(){

            List<Header> headers = entityManager.createQuery("select h from Header h",Header.class).getResultList();

                    for(Header h : m.getHeaders())
                    {

                       headers.add(h);


                           for(Question q : h.getQuestions())
                           {

                           }

                    }

            return headers; 

    }

虽然之前用 PrimeFaces 数据表尝试过几次:PFS 终于在这里(RF 数据表)工作了:

我在 selectOneRadio 中添加了以下 ajax 行:<p:ajax update="@(.status)" />

目标列:

              <h:panelGroup id="outputPanel1" styleClass="status">

                        <h:outputText id="display1" value="#{row.answer.select1}" />

              </h:panelGroup>

但现在我遇到了以下问题:TabView First Tab not toggled as expected