2012-10-02 37 views
0

我想不通爲什麼我的primefaces民意調查不會更新任何組件。Primefaces民意調查沒有更新面板

<p:poll widgetVar="poll" 
          interval="#{messageBean.refreshInterval}" 
          listener="#{messageBean.refreshLiveData}" 
          update=":transactionLogForm:tabViewMain:liveViewPanel"/> 

的refreshLiveData方法被調用成功,但它拒絕更新outputText組件(或與此有關的任何組件)。

     <p:tab id="liveViewTab" title="Live View"> 
          <h:panelGrid id="liveViewPanel" columns="6" cellpadding="5"> 
           <h:outputText value="Live View Enabled: " /> 

           <p:selectBooleanCheckbox value="#{messageBean.liveViewActive}"> 
           </p:selectBooleanCheckbox> 

           <h:outputText value="Interval: " /> 
           <p:spinner id="interval" value="#{transactionLogBean.refreshInterval}" /> 
           <h:outputText value="Last Update:" /> 
           <h:outputText id="lastUpdated" value="#{transactionLogBean.lastUpdated}" /> 
          </h:panelGrid> 
         </p:tab> 

這裏是從身體標記內的全碼:

 <p:layout id="mainLayout" fullPage="true" style="height:100%" > 

      <h:form id="transactionLogForm"> 

       <p:poll widgetVar="poll" 
         interval="#{messageBean.refreshInterval}" 
         listener="#{messageBean.refreshLiveData}" 
         update=":transactionLogForm:tabViewGrids:messageTable :transactionLogForm:tabViewGrids:timestatTable :transactionLogForm:tabViewMain:liveViewPanel"/> 

       <p:layoutUnit id="topHeader" position="north" size="178" > 

        <ui:include src="inc_menu.xhtml" /> 

       </p:layoutUnit> 

       <p:layoutUnit id="center" position="center" > 

        <div> 
         <p style="font-size: 20px; font-weight: bold; padding: 0px 0px 0px 10px">Transaction Logs</p> 
        </div> 

        <p:tabView id="tabViewMain" orientation="top"> 
         <p:tab title="Reference No"> 
          <h:panelGrid columns="2" cellpadding="5"> 
           <p:inputTextarea id="referenceNo" rows="1" cols="100" value="#{transactionBean.referenceNo}" style="width:300px"/> 
           <p:commandButton id="refreshBtnMain0" value="Search" action="#{transactionBean.searchTranLogDetails(true)}" 
               update=":transactionLogForm:transactionSearchTable" ajax="true" 
               oncomplete="txnDialog.show()" 
               style="vertical-align: baseline"/> 
          </h:panelGrid> 
         </p:tab> 
         <p:tab title="Log Id"> 
          <h:panelGrid columns="2" cellpadding="5"> 
           <p:inputText id="logID" value="#{transactionLogBean.logID}" style="width:300px"/> 
           <p:commandButton id="refreshBtnMain1" value="Refresh" action="#{transactionLogBean.refreshData}" update=":transactionLogForm:tabViewGrids:messageTable :transactionLogForm:tabViewGrids:timestatTable" ajax="true" /> 
          </h:panelGrid> 
         </p:tab> 
         <p:tab title="Date Range"> 
          <h:panelGrid columns="5" cellpadding="5"> 
           <h:outputText value="Start Date:" /> 
           <p:calendar id="StartDate" pattern="dd/MM/yyyy HH:mm:ss" navigator="true" value="#{transactionLogBean.startDate}" /> 
           <h:outputText value="End Date:" /> 
           <p:calendar id="EndDate" pattern="dd/MM/yyyy HH:mm:ss" navigator="true" value="#{transactionLogBean.endDate}" /> 
           <p:commandButton id="refreshBtnMain2" value="Refresh" action="#{transactionLogBean.refreshData}" update=":transactionLogForm:tabViewGrids:messageTable :transactionLogForm:tabViewGrids:timestatTable" ajax="true" /> 
          </h:panelGrid> 
         </p:tab> 

         <p:tab id="liveViewTab" title="Live View"> 
          <h:panelGrid id="liveViewPanel" columns="6" cellpadding="5"> 
           <h:outputText value="Live View Enabled: " /> 

           <p:selectBooleanCheckbox value="#{messageBean.liveViewActive}"> 
           </p:selectBooleanCheckbox> 

           <h:outputText value="Interval: " /> 
           <p:spinner id="interval" value="#{transactionLogBean.refreshInterval}" /> 
           <h:outputText value="Last Update:" /> 
           <h:outputText id="lastUpdated" value="#{transactionLogBean.lastUpdated}" /> 
          </h:panelGrid> 
         </p:tab> 

        </p:tabView> 

        <p:tabView id="tabViewGrids"> 
         <p:tab title="Message Logs"> 
          <ui:include src="inc_messagelogs.xhtml" /> 
         </p:tab> 

         <p:tab title="Timestat Logs"> 
          <ui:include src="inc_timestatlogs.xhtml" /> 
         </p:tab> 
        </p:tabView> 

        <p:dialog header="Log Message" widgetVar="logDialog" id="logDlg" showEffect="fade"> 

         <h:outputText id="msg" value="#{transactionLogBean.selectedLogMessage}"/> 

        </p:dialog> 

        <p:dialog header="Transaction Search Results" widgetVar="txnDialog" resizable="false" id="tranDlg" 
           showEffect="fade" modal="false" position="center"> 

         <p:dataTable id="transactionSearchTable" value="#{transactionBean.tranlogList}" 
            var="t" widgetVar="tranSearchTable" rowKey="#{t.transactionId}" 
            selectionMode="single" selection="#{transactionBean.selectedTranlog}" 
            paginator="true" rows="10" style="font-size:14px" 
            rowStyleClass="#{t.rowColour}"> 

          <p:ajax event="rowSelect" update=":transactionLogForm:tabViewGrids:messageTable :transactionLogForm:tabViewGrids:timestatTable" 
            listener="#{transactionLogBean.refreshData(transactionBean.selectedTranlog.logId)}" 
            oncomplete="txnDialog.hide()" global="false"/>         

          <p:column style="text-align: left"> 
           <f:facet name="header"> 
            Tran Id 
           </f:facet> 
           #{t.transactionId} 
          </p:column> 

          <p:column style="text-align: left" sortBy="#{t.dateCreated}"> 
           <f:facet name="header"> 
            Date/Time 
           </f:facet> 
           #{t.dateCreated} 
          </p:column> 

          <p:column style="text-align: left" sortBy="#{t.transactionType}"> 
           <f:facet name="header"> 
            Tran Type 
           </f:facet> 
           #{t.transactionType} 
          </p:column> 

          <p:column style="text-align: left"> 
           <f:facet name="header"> 
            Amount 
           </f:facet> 
           #{t.amount} 
          </p:column> 

          <p:column style="text-align: left"> 
           <f:facet name="header"> 
            Result 
           </f:facet> 
           #{t.externalMessageCode} 
          </p:column> 

         </p:dataTable> 

        </p:dialog> 

       </p:layoutUnit> 

      </h:form> 

     </p:layout> 

我沒有收到報告的任何錯誤,所以所有的引用必須是確定 - 請幫助! 我使用JSF 2.0,Primefaces從生成的html 3.4.RC1

提取物:

<div id="transactionLogForm:tabViewMain:liveViewTab" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-helper-hidden" role="tabpanel" aria-hidden="true"><table id="transactionLogForm:tabViewMain:liveViewPanel" cellpadding="5"> 
<tbody> 
<tr> 
<td>Live View Enabled: </td> 
<td><div id="transactionLogForm:tabViewMain:j_idt27" class="ui-chkbox ui-widget"><div class="ui-helper-hidden-accessible"><input id="transactionLogForm:tabViewMain:j_idt27_input" name="transactionLogForm:tabViewMain:j_idt27_input" type="checkbox" /></div><div class="ui-chkbox-box ui-widget ui-corner-all ui-state-default"><span class="ui-chkbox-icon"></span></div></div><script id="transactionLogForm:tabViewMain:j_idt27_s" type="text/javascript">PrimeFaces.cw('SelectBooleanCheckbox','widget_transactionLogForm_tabViewMain_j_idt27',{id:'transactionLogForm:tabViewMain:j_idt27'});</script></td> 
<td>Interval: </td> 
<td><span id="transactionLogForm:tabViewMain:interval" class="ui-spinner ui-widget ui-corner-all"><input id="transactionLogForm:tabViewMain:interval_input" name="transactionLogForm:tabViewMain:interval_input" type="text" class="ui-spinner-input ui-inputfield ui-state-default ui-corner-all" autocomplete="off" value="10" /><a class="ui-spinner-button ui-spinner-up ui-corner-tr ui-button ui-widget ui-state-default ui-button-text-only"><span class="ui-button-text"><span class="ui-icon ui-icon-triangle-1-n"></span></span></a><a class="ui-spinner-button ui-spinner-down ui-corner-br ui-button ui-widget ui-state-default ui-button-text-only"><span class="ui-button-text"><span class="ui-icon ui-icon-triangle-1-s"></span></span></a></span><script id="transactionLogForm:tabViewMain:interval_s" type="text/javascript">$(function(){PrimeFaces.cw('Spinner','widget_transactionLogForm_tabViewMain_interval',{id:'transactionLogForm:tabViewMain:interval',step:1.0});});</script></td> 
<td>Last Update:</td> 
<td><span id="transactionLogForm:tabViewMain:lastUpdated"></span></td> 
</tr> 
</tbody> 
</table> 
</div> 
+0

你確定'transactionLogForm:tabViewMain:liveViewPanel'確實存在嗎? – Daniel

+0

是的 - 如果我查看頁面源代碼,它肯定存在。 – JBehrendt

+0

是在表單內的'p:poll'嗎? – Daniel

回答

0

問題解決了 - 這畢竟是一個支持bean的問題,沒有什麼做的民意調查本身這是工作正常。

+0

那你做了什麼? – JustBasti