この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらを���参照ください。
英語に切り替える

動的 Visualforce コンポーネント

Visualforce の基本的な目的は、静的なマークアップベースの言語として、開発者が Salesforce のデザインとマッチしたユーザインターフェースを作成できるようにすることです。ただし、場合によってはプログラムでページを作成することが必要になります。通常、これは標準マークアップでは難しいか不可能な、複雑なユーザインターフェース動作を実現する場合です。

動的 Visualforce コンポーネントは、ユーザの権限やアクション、ユーザまたは組織の設定、表示されているデータなどのさまざまな状態に応じて、コンポーネントツリーのコンテンツや配置が異なる Visualforce ページを作成する方法を提供します。動的 Visualforce コンポーネントは、標準マークアップを使用する代わりに、Apex で設計されています。

動的 Visualforce コンポーネントは、次のように Apex で定義されています。
1Component.Component_namespace.Component_name
たとえば、<apex:dataTable>Component.Apex.DataTable になります。

標準コンポーネントの参照には、すべての有効な Visualforce コンポーネントの動的な表現が含まれます。

メモ

Apex で動的に表現される Visualforce コンポーネントは通常のクラスとして動作します。標準 Visualforce コンポーネントに存在する各属性は、get メソッドや set メソッドによる対応する Apex 表現でプロパティとして利用できます。たとえば、<apex:outputText> コンポーネントの value 属性を次のように操作できるとします。
1Component.Apex.OutputText outText = new Component.Apex.OutputText();
2outText.value = 'Some dynamic output text.';
次のような状況では、動的 Visualforce コンポーネントの使用を検討してください。
  • 複雑な制御ロジック内で動的 Visualforce コンポーネントを使用し、同等の標準 Visualforce では作成が難しいか不可能なコンポーネントの組み合わせを作ることができます。たとえば、標準 Visualforce コンポーネントでは、通常、コンポーネントの表示は rendered 属性とグローバル IF() 数式関数を使用して制御します。Apex で制御ロジックを記述することで、より自然なメカニズムを使用して動的にコンポーネントを表示することができます。
  • 特定の項目を持つオブジェクトを反復処理することがわかっているが、具体的にどのオブジェクトかわからない場合、動的 Visualforce コンポーネントでは、汎用的な sObject 参照を使用してオブジェクトの表示を「プラグイン」できます。詳細は、「関連リストの使用例」を参照してください。

動的 Visualforce コンポーネントは、組織の新規 Visualforce ページを作成するための主要な手段にすることを目的としたものではありません。既存の Visualforce ページを動的な手法で記述し直さないでください。標準 Visualforce コンポーネントは、ほとんどの使用事例に適しており、推奨されています。動的 Visualforce コンポーネントを使用するのは、ユーザの状態またはアクションに応じてページを自動的に変化させる必要があり、静的なマークアップにコード化するのが難しい場合のみに限定してください。

警告