AJAX事件仅在Primefaces dataTable中触发一次

时间:2012-03-30 21:40:13

标签: ajax jsf primefaces

我有一个用行填充的dataTable。点击一行后,包含网页会更新新信息。不幸的是,ajax事件只发射一次。这是代码:

.xhtml

<h:form id="form">
<f:loadBundle basename="com.company.messages" var="msgs" />         
<p:tabView id="tabView" effect="fade" effectDuration="fast">
<p:tab title="#{msgs.activeInterestPlansTab}">  

<p:dataTable var="plan" value="#{interestPlanReports.activePlans}" 
rowKey="#{plan.planNumber}"
selection="#{interestPlanReports.selectedPlan}"
selectionMode="single">  

                            <p:ajax event="rowSelect" listener="#{interestPlanReports.onRowSelect}"   
                        update=":form:tabView:tiers" oncomplete="interestPlanPanel.show()" />

                        <p:ajax event="rowUnselect" listener="#{interestPlanReports.onRowUnselect}" 
                        update=":form:tabView:tiers" oncomplete="interestPlanPanel.show()"/>  

                             <p:column headerText="Plan Number">  
                                 #{plan.planNumber}  
                             </p:column>  

                             <p:column headerText="Description">  
                                 #{plan.planDescription}  
                             </p:column>  

                             <p:column headerText="Base Plan" >  
                                 #{plan.basePlanNumber}  
                             </p:column>  

                             <p:column headerText="Base">  
                                 #{plan.interestRateCodeReadable}  
                             </p:column>

                             <p:column headerText="Base Rate">  
                                 <!-- #{plan.baseRatePlan} -->
                                 TODO  
                             </p:column>

                             <p:column headerText="Premium">  
                                 TODO  
                             </p:column>

                             <p:column headerText="Effective Date">
                                 <h:outputText value="#{plan.effectiveDate}" >
                                    <f:convertDateTime pattern="MM/dd/yyyy" />
                                </h:outputText>    
                             </p:column>

                             <p:column headerText="Expiration Date">
                                <h:outputText value="#{plan.expirationDate}" >
                                    <f:convertDateTime pattern="MM/dd/yyyy" />
                                </h:outputText>    
                             </p:column>

                         </p:dataTable>

                        <p:panel id="tiers" widget="interestPlanPanel">
                            <ui:include src="/interestplansearch/interestPlanDetail.xhtml">
                                <ui:param name="interestPlan" value="#{interestPlanReports.selectedPlan}"/>
                            </ui:include>                           
                        </p:panel>

                    </p:tab>

    public InterestPlan getSelectedPlan() {
        if (selectedPlan == null)
        {
            selectedPlan = activePlans.get(0);
        }
        return selectedPlan;
    }

    public void setSelectedPlan(InterestPlan selectedPlan) {
        this.selectedPlan = selectedPlan;
    }

    public void onRowSelect(SelectEvent event)
    {
        setSelectedPlan( (InterestPlan)event.getObject() );
    }

    public void onRowUnselect(UnselectEvent event) {
        setSelectedPlan( (InterestPlan)event.getObject() );
}

不确定我缺少什么。我感谢任何反馈。感谢

更新:从rowSelect和rowUnselect中删除oncomplete修复了FireFox上的问题。但是,在IE上,第一行选择更新面板。任何其他选择将恢复为原始选择(更新不是行)

0 个答案:

没有答案