編集可能なグリッドのオブジェクトとメソッド (クライアント側の参照)

 

公開日: 2017年1月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

データが編集可能なグリッドに選択、変更、保存されている場合、編集可能なグリッドでトリガーされたイベントにサブスクライブするイベント ハンドラーを設定できます。 編集可能なグリッドでは、編集不可能なグリッドでサポートされているクライアント側のメソッドの多くがサポートされます。 詳細: Dynamics 365 での編集可能グリッドの使用

注意

編集可能なグリッドは Dynamics 365 用 2016 年 12 月の更新プログラム (オンラインおよび設置型)で導入されました。

このトピックの内容

編集可能グリッドイベント

編集可能なグリッドのメソッド

編集可能グリッドイベント

編集可能なグリッドでは、クライアント側のスクリプトの登録と実行に使用できる、次のイベントがサポートされています。 エンティティまたは読み取り専用グリッドに対して編集可能なグリッドを有効化するために使用される Microsoft Dynamics 365 ページの [イベント] タブを使用してこれらのイベントを登録できます。

  • OnRecordSelect

  • OnChange

  • OnSave

重要

実行コンテキスト getFormContext メソッドを使用して一般的なイベント ハンドラーを作成します。このイベント ハンドラーは、編集可能なグリッド GridCell またはフォーム フィールドのいずれかで、イベント ハンドラーが実行される場所によって操作できます。詳細:getFormContext

OnRecordSelect

OnRecordSelect イベントは単一の行 (レコード) が編集可能なグリッドで選択されている場合に発生します。 ユーザーが同じ行で異なるセルを選択している、または複数の行を選択している場合、このイベントは発生しません。

OnChange

OnChange イベントは、編集可能なグリッドのセルで値が変更されているとき、またはセルがフォーカスを失ったときに発生します。 また、このイベントは、属性値が setValue メソッドを使用して更新されるときに発生します。

OnSave

OnSave イベントは、更新された情報がサーバーにを送信される前、および次のいずれかが起こると発生します。

  • レコードの選択で変更がある。

  • ユーザーが編集可能なグリッドの保存ボタンを使用して、保存操作を明示的にトリガーする。

  • 保留中の変更がある間に編集可能なグリッドから、ユーザーが並べ替え、フィルター、グループ化、改ページ、ナビゲーション操作を適用する。

OnSave イベントに関して考慮する必要がある重要な点がいくつかあります。

  • ユーザーが、同じレコードの複数列を順番に編集する場合は、最適なパフォーマンスとフォーム動作の互換性を保つため、OnSave イベントが一度だけ実行されます。

  • 編集可能なグリッドと親フォームには、個別の保存ボタンがあります。 そのうちの 1 つで保存ボタンをクリックしても、もう一方では変更は保存されません。

  • ナビゲーション操作がコンテキスト外で実行されている場合、編集可能なグリッドでは保留中の変更は保存されません。 コントロールに保存されていないデータがある場合、そのデータが失われる可能性があります。 そのため、OnSave イベントが発生しない可能性があります。 たとえば、このことは、フォーム検索フィールドを使用して、またはリボンを介して別のレコードに移動する際に生じる可能性があります。

  • 編集可能なグリッドで更新ボタンをクリックすることにより、保留中の変更を破棄します。OnSave イベントは実行されません。

  • 編集可能なグリッドのコントロールは自動保存タイマーを実装していません。

  • 編集可能なグリッドは、重複データ検出ルールを非表示にします。

編集可能なグリッドのメソッド

編集可能なグリッドでは、読み取り専用グリッドでサポートされている新しいメソッドのいくつか、および既存のメソッドの多くがサポートされています。

  • GridControl

  • グリッド

  • GridRow

  • GridRowData

  • GridEntity

  • GridAttribute

  • GridCell

GridControl

編集可能なグリッドのコントロール名が分かっている場合は、次のコードを使用してアクセスできます。 たとえば、既定の取引先企業フォーム内の「取引先担当者」サブグリッドにアクセスできます。

var contactsGrid = Xrm.Page.getControl("Contacts");

ヒント

フォーム エディターを開かずに、フォーム内のグリッドのコントロール名を識別するには、「ブラウザー開発ツールの使用」を参照してください。

編集可能なグリッドでは、次の読み取り専用グリッドのコントロールのメソッドがサポートされています。getEntityName および getGrid

グリッド

編集可能なグリッドでは、GridControl.getGrid メソッドで返された Grid の次のメソッドがサポートされています。getRowsgetSelectedRows、および getTotalRecordCount

GridRow

編集可能なグリッドでは、Grid.getRows および Grid.getSelectedRows のメソッドで返される GridRowgetData メソッドがサポートされています。

また、GridRow では、編集可能なグリッドの行を使用する方法を提供するdata コレクションがサポートされています。 コレクション内のデータにアクセスするために使用できるメソッドの詳細については、「コレクション (クライアント側の参照)」を参照してください。

GridRowData

編集可能なグリッドでは、GridRow.getData メソッドで返される GridRowDatagetEntity メソッドがサポートされています。

また、GridRowData では、行に含まれるすべての属性のコレクションを含む、編集可能なグリッドの行に表示されるレコードに固有の情報を取得するメソッドを提供します。 属性データは編集可能なグリッドで表示される列に制限されています。 コレクション内のデータにアクセスするために使用できるメソッドの詳細については、「コレクション (クライアント側の参照)」を参照してください。

GridEntity

編集可能なグリッドでは、GridRowData.getEntity メソッドで返されたGridEntity の次のメソッドがサポートされています。

GridRowData.getEntity メソッドを使用する以外に、GridRowData.entity オブジェクトに直接アクセスすることによって GridEntity を取得できます。

また、GridEntity は、編集可能なグリッド内のエンティティの属性のコレクションを操作するメソッドを提供するattributesコレクションもサポートしています。 各属性 (GridAttribute) は編集可能なグリッドのセルのデータを表します。属性に関連付けられているすべてのセルへの参照が含まれています。 コレクション内のデータにアクセスするために使用できるメソッドの詳細については、「コレクション (クライアント側の参照)」を参照してください。

GridAttribute

GridAttribute は、選択したグリッドの行の属性の次のメソッドをサポートしています。getNamegetRequiredLevelsetRequiredLevelgetValue、および setValue

Grid.getSelectedRows メソッドを使用して、編集可能なグリッドで選択した行を取得します。

また、GridAttribute は、選択したグリッドの行の属性のcontrolsコレクションをサポートしています。このコレクションは、属性に関連付けられているセルのコレクションを操作するメソッドを提供しています。 選択したグリッドの行の各セル (GridCell) は、編集可能なグリッドの属性に関連付けられたフォームでのコントロールに似ています。 コレクション内のデータにアクセスするために使用できるメソッドの詳細については、「コレクション (クライアント側の参照)」を参照してください。

ヒント

パフォーマンス上の理由のため、編集可能なグリッドの行 (レコード) はレコードが選択されるまで編集できません。 ユーザーはグリッド内で単一レコードを選択して編集する必要があります。 編集可能なグリッド内でレコードが選択されると、Dynamics 365 は内部で評価します。レコードへのユーザーアクセス、レコードがアクティブかどうか、フィールドの検証を含む一連の事柄を評価して、データのセキュリティと有効性がデータの編集時に保証されることを確認します。OnRecordSelect イベントを getFormContext メソッドと共に使用して、編集可能な状態にあるグリッド内のレコードにアクセスすることを検討してください。

GridCell

setNotification および clearNotification に加えて、GridCell は次のコントロール用のメソッドをサポートしています。

注意

編集可能なグリッドでは、複数の通知を同時に表示できません。

getDisabled

セルが無効かどうかを返します (読み取り専用)。

gridCellObj.getDisabled()
  • 戻り値
    種類: ブール値。 セルが無効である場合は True、それ以外の場合は False です。

setDisabled

セルが無効かどうかを設定します。

gridCellObj.setDisabled(bool)
  • 引数
    種類: ブール値。 セルを無効にする場合は True、それ以外の場合は False です。

  • 備考
    編集に対する読み取り専用セルを有効にすると、レコードが保存されたときにエラーが発生する場合があります。 サーバーによってフィールドが読み取り専用と見なされると、値が変更された場合にエラーが発生する可能性があります。 このことは、ユーザーにレコードへの書き込み特権がない、レコードが無効である、または必要なフィールド レベルのセキュリティ特権をユーザーが持っていない、といった場合に生じる可能性があります。

getLabel

セルを含む列のラベルを返します。

gridCellObj.getLabel()
  • 戻り値
    種類: 文字列。 列のラベル。

関連項目

グリッド (読み取り専用) のオブジェクトとメソッド (クライアント側の参照)
Dynamics 365 での編集可能グリッドの使用

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権