2017-06-12 11 views
0

送信ボタンを押したときに<p:chart>を更新しようとしていますが、グラフは常に同じままです。私はこれをgoogledし、私はすでにやっていたAjaxの更新コマンドを使用するように言われました。ボタンのヒットの後、p:グラフが更新されない

.xhtml

<body> 
    <ui:define name="content"> 
     <h:form id="chartForm"> 
      <p:growl id="msgs" showDetail="true" /> 

      <p:panel header="Select a Location" style="margin-bottom:10px;"> 
       <h:panelGrid columns="4" cellpadding="5"> 
        <p:outputLabel for="facility" value="Facility: " /> 

        <p:selectOneMenu id="facility" value="#{visualization.facility}" converter="#{facilityConverterBean}" style="width:150px"> 
         <p:ajax event="change" process="@this" partialSubmit="true" listener="#{visualization.onFacilityChange()}" update="component" /> 
         <f:selectItem itemLabel="Select Facility" noSelectionOption="true" /> 
         <f:selectItems value="#{visualization.facilities}" var="facility" itemLabel="#{facility.name}" itemValue="#{facility}" /> 
        </p:selectOneMenu> 

        <p:outputLabel for="component" value="Components: " /> 

        <p:selectOneMenu id="component" value="#{visualization.component}" converter="#{componentConverterBean}" style="width:150px"> 
         <f:selectItem itemLabel="Select Component" noSelectionOption="true" /> 
         <f:selectItems value="#{visualization.components}" var="comp" itemLabel="#{comp.name}" itemValue="#{comp}" /> 
        </p:selectOneMenu> 

        <p:outputLabel for="datetimefrom" value="Datetime from" /> 
        <p:calendar id="datetimefrom" value="#{visualization.dateFrom}" pattern="dd/MM/yyyy HH:mm" /> 
        <p:outputLabel for="datetimeto" value="Datetime to" /> 
        <p:calendar id="datetimeto" value="#{visualization.dateTo}" pattern="dd/MM/yyyy HH:mm" /> 
        <h:outputLabel for="recordcount" value="Record count" /> 
        <p:spinner id="recordcount" value="#{visualization.recordCount}" stepFactor="25" /> 
       </h:panelGrid> 

       <p:separator /> 

       <p:commandButton value="Submit" actionListener="#{visualization.fetchDataRecords()}" update="chartForm:chartTab:lineChartTemperatures" icon="ui-icon-check" /> 
      </p:panel> 

      <p:tabView id="chartTab"> 
       <p:tab title="Diagramm"> 
        <p:chart id="lineChartTemperatures" type="line" model="#{lineChart.dateModel}" style="margin-bottom: 1px" responsive="true" /> 
       </p:tab> 

       <p:tab title="DataTable"> 
        <h:panelGrid> 
         <h:outputText value="....not implemented" /> 
        </h:panelGrid> 
       </p:tab> 
      </p:tabView> 
     </h:form> 

    </ui:define> 
</body> 

fetchDataRecords()、別のシリーズは

public void updateBhkwChartRuecklauf(List<BhkwRecord> data) { 
    //data not used here, just added simulated data to test 

    LineChartSeries series3 = new LineChartSeries(); 
    series3.setLabel("Series3"); 
    series3.set("2014-01-01 00:10:50", 54); 
    series3.set("2014-01-01 01:12:50", 20); 
    series3.set("2014-01-01 04:14:50", 60); 
    series3.set("2014-01-01 06:17:50", 30); 

    dateModel.addSeries(series3); 
} 

ので、通常のグラフに追加され

public void fetchDataRecords(){ 
     List<BhkwRecord> data = bhkwService.getRecordsFromTo(component.getId(), dateFrom, dateTo); 
     //System.out.println("Amount of records fetched: " + data.size()); 
     lineChart.updateBhkwChartRuecklauf(data); 
    } 

方法:ここに私のコードですメソッドはグラフに別の一連のデータを追加して更新する必要がありますが、何も起こっていません。私もupdate="@form"を試しましたが、どちらもうまくいきませんでした。誰かが私が間違っているアイデアを持っていますか?

答えて

0
<p:tab title="Diagramm"> 
    <p:outputPanel id="chartPnl> 
     <p:chart id="lineChartTemperatures" type="line" model="#{lineChart.dateModel}" style="margin-bottom: 1px" responsive="true" /> 
    </p:outputPanel> 
</p:tab> 

chartを別のlikePanelコンポーネントに配置し、commandButtonでそれを更新することができます。

<p:commandButton value="Submit" actionListener="#{visualization.fetchDataRecords()}" update="chartForm:chartTab:chartPnl" icon="ui-icon-check" /> 
関連する問題