クライアント API を使用したサイド ペインの作成

開発者は、サイド ペインのコレクションを表す Xrm.App.sidePanes API を使用して、モデル駆動型アプリ内でアプリのサイド ペインを作成および管理できます。 createPane メソッドの呼び出しによって、モデル駆動型アプリ フォームまたはカスタム ページへのナビゲーションを可能にする新しいペインが追加されます。 サイド ペインに表示されるページは、最小幅が 300 ピクセル以内に収まり、ペインの幅に応じて大きな幅にサイズ変更する必要があります。

タブはサイド ペインに 2 つのグループ—"閉じることができる"、および "閉じることができない" で一覧表示されます。 各グループ内で、タブは作成された順序で一覧表示されます。 上のグループにはユーザーが閉じることができないペインが含まれ、下のグループにはユーザーが閉じることができるペインが含まれます。 閉じることができないグループはアプリを開いたときに追加されますが、閉じることができるグループはアプリ内のユーザー アクションに応じて追加されます。

プラットフォームに付属するタイトルと [閉じる] ボタン付きのヘッダーを使用するか、カスタム ヘッダーを使用することもできます。

サイド ペインにバッジを追加して、変更に注意が必要であることをユーザーに示すことができます。 バッジは、シンプルなドット、カウント、または画像の 3 つのモードをサポートしています。 既定では、ユーザーがペインに切り替えるとバッジはクリアされます。 バッジをいつクリアするかコントロールできます。

サイド ペインに既定ビューを表示する

このセクションの例では、アプリのサイド ペインにテーブルの既定ビューを表示する方法を表しています。 予約リストと製品リストは、閉じることができないペインとして開かれます。

Xrm.App.sidePanes.createPane({
    title: "Reservations",
    imageSrc: "WebResources/sample_reservation_icon",
    paneId: "ReservationList",
    canClose: false
}).then((pane) => {
    pane.navigate({
        pageType: "entitylist",
        entityName: "sample_reservation",
    })
});

名前、備品、予約の開始日など、アクティブな予約のリストを含む予約テーブルを表示しているスクリーンショット。

Xrm.App.sidePanes.createPane({
    title: "Products",
    imageSrc: "WebResources/sample_product_icon",
    paneId: "ProductList",
    canClose: false
}).then((pane) => {
    pane.navigate({
        pageType: "entitylist",
        entityName: "sample_product",
    })
});

予約可能な製品のリストを含む製品テーブルを表示しているスクリーンショット。

テーブル行の表示

これは、サイド ペインに行を表示する方法の例です。 予約行がサイド ペインで開かれ、既定のヘッダーが非表示になり、幅が 600 ピクセルにカスタマイズされます。

Xrm.App.sidePanes.createPane({
    title: "Reservation: Ammar Peterson",
    imageSrc: "WebResources/sample_reservation_icon",
    hideHeader: true,
    canClose: true,
    width: 600
}).then((pane) => {
    pane.navigate({
        pageType: "entityrecord",
        entityName: "sample_reservation",
        entityId: "d4034340-4623-e811-a847-000d3a30c619",
    })
});

個々のレコードに対して開かれたアクティブな予約リストを表示しているスクリーンショット。

サイド ペインの管理

サイド ペインを作成して、サイド ペイン内に行またはビューを表示することの他に、次のこともできます。

  • state メソッドを使用してプログラムでサイド ペインを折りたたむ:

    Xrm.App.sidePanes.state = 0;

  • state メソッドを使用してプログラムでサイド ペインを展開する:

    Xrm.App.sidePanes.state = 1;

  • 選択したペインを取得してプロパティを変更する:

    var lastPane = Xrm.App.sidePanes.getSelectedPane();
    lastPane.width = 400;

  • paneId パラメータを使用して特定のペインを取得する。

    var reservationPane = Xrm.App.sidePanes.getPane("ReservationList");
    reservationPane.close();

  • ペインでバッジ プロパティを有効にする:

    Xrm.App.sidePanes.getSelectedPane().badge = 1;

Xrm.App.panels.loadPanel で使用する

Xrm.Panels.loadPanel API は Xrm.App.sidePanes.createPane に置き換えられます。前者は単一のペインのみをサポートし、後者は複数のペインをサポートするためです。 loadPanel から createPane への以降を有効にするには、両方を一緒に動作します (制限あり)。 loadPanel のみをモデル駆動型アプリ内で使用する場合、エクスペリエンスは同じままです。 ただし、loadPanelcreatePane の両方を使用する場合、最初の制限として、プレースホルダー アイコンが loadPanel に表示されます。 2 つ目の制限として、ユーザーが loadPanel から createPane に切り替え、loadPanel のコンテンツはメモリを節約するためにアンロードされ、状態なしで戻すときにリロードされます。 このタブの切り替え動作は、アプリが使用するメモリを管理するためにマルチセッション アプリ モードで使用されるものと同じです。 ほとんどのページ タイプは正しく復元されますが、外部サイトまたは Web リソースが開いている場合、状態は復元されません。

createPane に切り替えて使用すると、アイコンを提供し、alwaysRender を有効にすることで制限を回避できます。 ユーザーが切り替えても、alwaysRender はペインのコンテンツを保持しますが、メモリの使用量が増えるため、慎重に使用する必要があります。

sidePanes (クライアント API 参照)

loadPanel (Client API 参照)