モデル駆動型アプリのフォームとグリッド内のイベント

フォームとグリッドのイベントは、モデル駆動型アプリ内のすべてのクライアント側コードを開始します。 イベントが発生したときに実行される JavaScript ライブラリ (スクリプト Web リソース) 内の特定の関数を関連付けます。 この機能は [イベント ハンドラー] と呼ばれます。 各イベント ハンドラーは、単一の関数を JavaScript ライブラリおよび関数が渡されるパラメータに指定します。

UI を使用して、イベント ハンドラーを一部のイベントにのみ関連付けることができます。 UI を介して関連付けることができないイベントの場合、クライアント API には、イベント ハンドラーのアタッチに使用できるメソッドが用意されています。

UI を使用してフォーム内のイベント ハンドラー関数を追加または削除する

新しい統合インターフェイスでイベントのイベント ハンドラー関数を追加または削除するには:

  1. Power Apps に移動します。

  2. 左のナビゲーション ペインで、データ を選択し、テーブル を選択します。

  3. テーブルのリストから、イベント ハンドラーを追加するテーブルを選択します。

  4. コマンド バーから [ フォーム ] タブを選択し、イベント ハンドラーを追加するフォームを選択します。

    Power Appsのテーブルのフォームの一覧を示す [フォーム] タブのスクリーンショット。

  5. [ イベント ] タブを選択します。 On Save イベント ハンドラーと On Load イベント ハンドラーの両方が表示されます。

    [保存時] および [読み込み時] フォーム イベント ハンドラーを示す [イベント] タブのスクリーンショット。

  6. 変更イベントのイベント ハンドラーを追加するには、列を選択し、[ イベント ] タブを選択します。

    [変更時] イベント ハンドラーの設定を示す [イベント] タブのスクリーンショット。

一括編集フォーム

既定では、フォームが一括編集モードの場合、イベント ハンドラーは実行されません。

一括編集モードでイベント ハンドラーを有効にするには、関連する event 要素を検索し、 BehaviorInBulkEditForm 属性を作成または Enabledに設定して、Form XML を変更します。 現在、この動作は OnLoad イベントでのみサポートされています。

フォーム XML のカスタマイズの詳細については、「 カスタマイズ ファイルを編集するタイミング」、 フォームのカスタマイズ、 およびフォーム XML スキーマを参照してください。

イベント ハンドラーがフォームで一括編集モードで実行されるタイミングを確認するには、 getFormType メソッドを使用します。

クライアント API コードを使用してイベント ハンドラー関数を追加または削除する

UI で関連付けることができないイベントのイベント ハンドラーを追加および削除するには、次のメソッドを使用します。

Events イベント ハンドラー
属性 OnChange addOnChange および removeOnChange メソッド
フォーム OnLoad formContext.ui addOnLoad および removeOnLoad メソッド
フォーム Loaded formContext.ui addLoaded および removeLoaded メソッド
フォーム データ OnLoad formContext.data addOnLoad および removeOnLoad メソッド
フォーム OnSave addOnSave および removeOnSave メソッド
検索コントロール PreSearch addPreSearch および removePreSearch メソッド
kbsearch コントロール OnResultOpened addOnResultOpened および removeOnResultOpened メソッド
kbsearch コントロール OnSelection addOnSelection および removeOnSelection メソッド
kbsearch コントロール PostSearch addOnPostSearch および removeOnPostSearch メソッド

重要

実行コンテキストは、コードを使用して設定した関数に最初のパラメーターとして自動的に渡されます。 詳細については、「 クライアント API の実行コンテキスト」を参照してください。

フォーム イベント パイプライン

各イベントに最大 50 個のイベント ハンドラーを定義することができます。 [フォームのプロパティ] ダイアログ ボックスの [イベント] タブの [イベント ハンドラー] セクションには、イベント ハンドラーの順序が表示され、各イベント ハンドラーはその順序で実行されます。

setSharedVariable および getSharedVariable メソッドを使用して、イベント ハンドラー間の共通変数 (関数) を渡します。 実行コンテキスト getDepth メソッドを使用して、他のイベント ハンドラーに対するイベント ハンドラー実行のシーケンスを理解します。

クライアント API オブジェクト モデルについて
クライアント API 実行コンテキスト
イベント (クライアント API 参照)