<apex:actionSupport> を使用したグラフデータの更新
ユーザのアクションに応じて Visualforce グラフを更新するには、<apex:actionSupport> コンポーネントを、グラフのデータに影響する Visualforce ユーザインターフェース要素に追加します。
次のマークアップでは、グラフの横にあるメニューから新しい年を選択して更新可能な円グラフを表示します。
このマークアップでは、グラフの data 属性を Visualforce 式 {!pieData} に設定することで、グラフコンポーネントをそのデータソースに添付します。式は、getPieData() コントローラメソッドをコールし、コントローラメソッドからデータが返されます。グラフは、theChart という id 属性を持つ <apex:outputPanel> でラップされます。
<apex:form> コンポーネントは、グラフの更新が必要な場合に、ページのコントローラに新しい年を返送するために使用されます。<apex:selectList> タグは、グラフで使用可能な年を表示し、子 <apex:actionSupport> タグは、メニューが変わると常にフォームを送信します。グラフの <apex:outputPanel> の id である theChart は、<apex:actionSupport> reRender 属性で、ページ全体を再読み込みするのではなく、更新をグラフのみに制限するために使用されます。さらに、<apex:actionStatus> コンポーネントは、グラフの更新中に状況メッセージを提供します。短いテキストメッセージをアニメーショングラフィックやテキスト効果で簡単に置き換えることができます。
PieChartRemoteController
このページのコントローラは、「単純なグラフ作成の例」で使用されている円グラフコントローラを拡張したものです。
このコントローラは、Visualforce グラフへのデータ提供に 2 つの異なる方法をサポートしています。
- Visualforce 式 {!pieData} を使用してインスタンスメソッド getPieData() をコールする。
- @RemoteAction 静的メソッド getRemotePieData() を JavaScript メソッドからコールして JavaScript Remoting を使用する。