title: AJAX event is only firing once in a Primefaces dataTable
body: <p>I have a dataTable that gets populated with rows. On clicking on a row, the include webpage updates with new infomation. Unfortunately, the ajax event only fires once. Here's the code:</p>
  
  <p>.xhtml</p>
  
  <pre><code>&lt;h:form id="form"&gt;
  &lt;f:loadBundle basename="com.company.messages" var="msgs" /&gt;         
  &lt;p:tabView id="tabView" effect="fade" effectDuration="fast"&gt;
  &lt;p:tab title="#{msgs.activeInterestPlansTab}"&gt;  
  
  &lt;p:dataTable var="plan" value="#{interestPlanReports.activePlans}" 
  rowKey="#{plan.planNumber}"
  selection="#{interestPlanReports.selectedPlan}"
  selectionMode="single"&gt;  
  
                              &lt;p:ajax event="rowSelect" listener="#{interestPlanReports.onRowSelect}"   
                          update=":form:tabView:tiers" oncomplete="interestPlanPanel.show()" /&gt;
  
                          &lt;p:ajax event="rowUnselect" listener="#{interestPlanReports.onRowUnselect}" 
                          update=":form:tabView:tiers" oncomplete="interestPlanPanel.show()"/&gt;  
  
                               &lt;p:column headerText="Plan Number"&gt;  
                                   #{plan.planNumber}  
                               &lt;/p:column&gt;  
  
                               &lt;p:column headerText="Description"&gt;  
                                   #{plan.planDescription}  
                               &lt;/p:column&gt;  
  
                               &lt;p:column headerText="Base Plan" &gt;  
                                   #{plan.basePlanNumber}  
                               &lt;/p:column&gt;  
  
                               &lt;p:column headerText="Base"&gt;  
                                   #{plan.interestRateCodeReadable}  
                               &lt;/p:column&gt;
  
                               &lt;p:column headerText="Base Rate"&gt;  
                                   &lt;!-- #{plan.baseRatePlan} --&gt;
                                   TODO  
                               &lt;/p:column&gt;
  
                               &lt;p:column headerText="Premium"&gt;  
                                   TODO  
                               &lt;/p:column&gt;
  
                               &lt;p:column headerText="Effective Date"&gt;
                                   &lt;h:outputText value="#{plan.effectiveDate}" &gt;
                                      &lt;f:convertDateTime pattern="MM/dd/yyyy" /&gt;
                                  &lt;/h:outputText&gt;    
                               &lt;/p:column&gt;
  
                               &lt;p:column headerText="Expiration Date"&gt;
                                  &lt;h:outputText value="#{plan.expirationDate}" &gt;
                                      &lt;f:convertDateTime pattern="MM/dd/yyyy" /&gt;
                                  &lt;/h:outputText&gt;    
                               &lt;/p:column&gt;
  
                           &lt;/p:dataTable&gt;
  
                          &lt;p:panel id="tiers" widget="interestPlanPanel"&gt;
                              &lt;ui:include src="/interestplansearch/interestPlanDetail.xhtml"&gt;
                                  &lt;ui:param name="interestPlan" value="#{interestPlanReports.selectedPlan}"/&gt;
                              &lt;/ui:include&gt;                           
                          &lt;/p:panel&gt;
  
                      &lt;/p:tab&gt;
  </code></pre>
  
  <p>bean</p>
  
  <pre><code>    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() );
  }
  </code></pre>
  
  <p>Not sure what I'm missing. I appreciate any feedback. Thanks</p>
  
  <p>UPDATE: Removing oncomplete from both rowSelect and rowUnselect fixes the issue on FireFox. However, on IE the first row select updates the panel. Any additional selects reverts to the original selection (update not row)</p>