1

PrimeFaces バージョン 6.1 を使用しています。データをグラフ形式で表示する必要があります。このために、リンクhttps://www.primefaces.org/showcase-ext/sections/gchart/basic.jsfとして GChart コンポーネントを実装しました。フォームにリンクを追加し、そのリンクをクリックすると、グラフが表示されました。そのフォームで別のチャートを表示する必要があります。そのため、さまざまなボタンをクリックしてさまざまなチャートを表示するためのさまざまなパネルがあります。ページが読み込まれ、リンクが初めてクリックされたときに、チャートが適切にレンダリングされます。次に同じリンクをクリックすると、ページ全体が空白になります。コンソールでエラーを検索すると、次のようにエラーが表示されます。ここに画像の説明を入力

ページを動作状態にするには、ページを更新する必要があります。pe:gChart タグに id を指定してみましたが、リンク チャートをクリックすると表示され、次のクリックでページが空白になり、指定された新しい id を持つコンテナーが定義されていないため、エラーが表示されます。私のビューコードは次のようなものです:

<script src="https://www.gstatic.com/charts/loader.js"></script>
<h:form id="dash">
<p:commandLink id="savButton" class="small-box-footer" action="#{dashboardMB.createPieModel1}" update="@form">
                    <h:outputLabel  styleClass="np" value="#{text.Detail}"/>
                    <i class="fa fa-arrow-circle-right"></i>

</p:commandLink>
<p:panel header="#{text.Saving}"  rendered="#{dashboardMB.savVisible}" id="panelSav" closable="false" toggleable="true" >


            <p:outputPanel id="container1" layout="block">


                <div id="savChart">
                    <pe:gChart value="#{dashboardMB.savingChartModel}" width="400" height="400"
                        title="Saving Wise">

                    </pe:gChart>
                </div>



            </p:outputPanel>


</p:panel>

私のマネージド Bean コードは次のようになります。

public void  createPieModel1() {  

            isSavVisible=true;
            DashboardModel dashObj=new DashboardModel();
            dashObj=dashBoardEJB.getvalues();
            chartSavingModel = new GChartModelBuilder()
                    .setChartType(GChartType.COLUMN)  
                    .addColumns("Topping", "Slices")
                    .addRow("A", dashObj.getCount1())  
                    .addRow("V", dashObj.getCount2())
                    .addRow("Z", dashObj.getCount3())
                    .addRow("W", dashObj.getCount4())
                    .build();  
  }
4

1 に答える 1