PageCodeを使用する
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
SPEAKには、すべてのSPEAKページで必要なPageCodeコンポーネントがあります。 PageCodeコンポーネントの主な機能は、SPEAKページを初期化(「ブートストラップ」)することです。
PageCodeコンポーネントを使用すると、独自のビジネスロジックをSPEAKページに追加できます。これには、次の2つの方法があります。
-
JavaScript PageCodeを使用する
代わりにRulesを使用してJavaScriptロジックを実装できるかどうかを検討してください。ルールは、時間の経過とともに維持しやすくなります。
-
C# PageCodeを使用する
PageCodeコンポーネントは、ページを初期化するときに、そのページでコンポーネントをスキャンし、各コンポーネントを初期化します。コンポーネントの初期化の一部として、現在のアプリケーション オブジェクトにコンポーネントへの参照が格納されます。
たとえば、ページにTextBoxコントロールが含まれていて、このコントロールのIDがSearchTextBoxの場合、PageCodeはページを初期化するときにSitecore.app.SearchTextBoxという参照を作成します。JavaScriptでSearchTextBoxのtextプロパティにアクセスできます。
var text = this.SearchTextBox.get(“text”);
Visual Studioのセットアップ
Visual Studioのセットアップ
PageCodeスクリプト ファイルを操作する場合は、Visual Studioでファイルを編集し、Visual Studioソリューション エクスプローラーからこれらのファイルを開くことができる必要があります。以下の手順に従います。
-
Visual Studioでプロジェクトのソリューション ファイルをまだ作成していない場合は、ここで作成します。
-
プロジェクトに関連付けられているソリューションを開きます。
-
ソリューション エクスプローラーで、SPEAKページの項目構造に対応するフォルダー構造を作成します。ページ定義アイテムと同じ名前を付けるフォルダを含める必要があります。
JavaScriptページコードを使用する
JavaScriptページコードを使用する
JavaScriptページコードをページに追加するには:
-
Visual Studioソリューション エクスプローラーで、ページ コードを追加するページに対応するフォルダーを右クリックし、Addをクリックします。 New Item…
-
AddNew Itemダイアログで、「SPEAK Page Code」を選択し、定義アイテム名と一致する名前を入力します。
-
「 Add」をクリックします。
-
PageCodeコンポーネントのEdit Rendering Propertiesダイアログを開き、PageCodeScriptFileNameプロパティの値を作成したファイルを指定します。
これで、必要最小限のコードを含む新しいJavaScriptページ コード スクリプト ファイルが作成されました。
必要なコードを追加できます。ページ内のコンポーネントにアクセスできます。
コードは次のように機能します。
-
this.DataSource.on("change:items", this.updateCount, this);: 行は、DataSourceと呼ばれるコンポーネントのitemsプロパティが変更されたときにupdateCount関数を呼び出します。
-
updateCount関数は、DataSourceというコンポーネントからアイテムの数を取得し、Text2というコンポーネントのtextプロパティを更新します。
C# ページ コードを使用する
C# ページ コードを使用する
C# ページ コードを作成するには:
-
Visual Studioソリューション エクスプローラーで、ページ コードを追加するページに対応するフォルダーを右クリックし、Addを選択します。 Class…
-
Classを選択し、定義項目名と一致する名前を入力します。
-
「 Add」をクリックします。
Visual Studioによって、新しいC# ページ コード スクリプト ファイルが作成されます。
クラスはSitecore.Web.PageCodes.PageCodeBaseから継承する必要があります。
クラス定義内で、コード内で参照する各コンポーネントのメソッド定義の前に、次のような行を追加します。
public Sitecore.Mvc.Presentation.Rendering MyComponentId { get; set; }
ここで、MyComponentIdはSPEAKページ上のコンポーネントのIDです。
Sitecoreライブラリへの次の参照をソリューションに追加する必要があります。
-
Sitecore.Kernel
-
Sitecore.Mvc
-
Sitecore.Speak.Client

