次の方法で共有


グリッド (読み取り専用) のオブジェクトとメソッド (クライアント側の参照)

 

公開日: 2017年1月

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

データがサブグリッドに読み込まれたときにスクリプトを実行するイベント ハンドラーを設定できます。 これにより、選択されたビューを変更して、グリッドに表示されるデータへの参照を取得するメソッドが提供されます。

このトピックの内容

  • GridControl
    GridControl のイベントとメソッド: OnLoad イベント、addOnLoad、getEntityName、getGrid、getViewSelector、および removeOnLoad。

  • グリッド
    GridControl.getGrid メソッドによって返される Grid のメソッド: getRows、getSelectedRows、および getTotalRecordCount。

  • GridRow
    Grid.getRows および Grid.getSelectedRows メソッドによって返される GridRow の getData メソッド。

  • GridRowData
    GridRow.getData メソッドによって返される GridRowData の getEntity メソッド。

  • GridEntity
    GridRowData.getEntity メソッドによって返される GridEntity のメソッド: getEntityName、getEntityReference、getId、および getPrimaryAttributeValue。

  • ViewSelector
    GridControl.getViewSelector、getCurrentView、isVisible、および setCurrentView によって返される ViewSelector のメソッド

GridControl

CRM Online 2015 更新プログラム 1 の前は、サブグリッド コントロールの唯一のメソッドは refresh でした。 サブグリッド コントロールの名前を認識しているとき、次のコードを使用してそのコントロールにアクセスできます。たとえば、既定の取引先企業フォーム内の [取引先担当者] サブグリッドにアクセスできます。

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

ヒント

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

Xrm.Page.ui コントロールとして、GridControl には、refresh だけでなく、getControlTypeラベル メソッド、getParent表示する メソッド、setFocus、および 通知 メソッドのすべての標準のコントロール メソッドも必要です。 これらのメソッドの詳細については、「Xrm.Page.ui コントロール (クライアント側の参照)」を参照してください。

OnLoad イベント

サブグリッドが更新されるたびに実行するには、このイベントにイベント ハンドラーを追加します。 これは、ユーザーが列見出しをクリックして値を並べ替えるときに取り込まれます。GridControl.addOnLoad、および GridControl.removeOnLoad メソッドを使用して、通常はフォーム Onload イベントの際に、イベント ハンドラーを管理します。

addOnLoad

このメソッドを使用して、イベント ハンドラーを GridControlOnLoad イベント に追加します。

パラメーターの種類: 関数

例:myContactsGridOnloadFunction 関数を取引先担当者 サブグリッド OnLoad イベントに追加します。

var myContactsGridOnloadFunction = function () { console.log("Contacts Subgrid OnLoad occurred") };
Xrm.Page.getControl("Contacts").addOnLoad(myContactsGridOnloadFunction);

getEntityName

このメソッドを使用して、グリッドに表示されるエンティティ データの論理名を取得します。

戻り値の種類: 文字列

例:opportunitySubgrids 変数を、営業案件レコードを表示するサブグリッド コントロールの配列に設定します。

var opportunitySubgrids = Xrm.Page.getControl(function (ctrl, i) {
 if (ctrl.getControlType() == "subgrid") {
  return (ctrl.getEntityName() == "opportunity");
 }
 else {
  return false;
 }
})

getGrid

このメソッドを使用して、GridControl で使用できる グリッド にアクセスします。

戻り値の種類:グリッド

例:contactsSubgridGrid 変数を、取引先担当者サブグリッドのグリッドに設定します。

var contactsSubgridGrid = Xrm.Page.getControl("Contacts").getGrid();

getViewSelector

このメソッドを使用して、GridControl で使用できる ViewSelector にアクセスします。

戻り値の種類:ViewSelector

例:contactsSubgridViewSelector 変数を、取引先担当者サブグリッドのビューセレクターに設定します。

var contactsSubgridViewSelector = Xrm.Page.getControl("Contacts").getViewSelector();

removeOnLoad

このメソッドを使用して、イベント ハンドラーを GridControlOnLoad イベント から除去します。

パラメーターの種類: 関数

例:myContactsGridOnloadFunction 関数を Contacts サブグリッドの OnLoad イベントに追加し、その後、その関数を削除します。

var myContactsGridOnloadFunction = function () { console.log("Contacts Subgrid OnLoad occurred") };
Xrm.Page.getControl("Contacts").addOnLoad(myContactsGridOnloadFunction);
Xrm.Page.getControl("Contacts").removeOnLoad(myContactsGridOnloadFunction);

グリッド

Grid メソッドを使用して、グリッドのデータに関する情報にアクセスします。GridControl.getGrid メソッドによって、Grid が返されます。

getRows

Grid 内のすべての GridRow のコレクションを返します。

戻り値の種類: コレクション

例:allRows 変数を、Contacts サブグリッドの GridRow のコレクションに設定します。

var allRows = Xrm.Page.getControl("Contacts").getGrid().getRows();

備考:

コレクション内のデータにアクセスするために使用できるメソッドの詳細については、「コレクション (クライアント側の参照)」を参照してください。

getSelectedRows

Grid 内で選択したすべての GridRow のコレクションを返します。

戻り値の種類: コレクション

例:selectedEntityReferencesArray 変数に、[取引先担当者] サブグリッドから選択した行に対するエンティティ参照情報を入力します。

//Get an array of entity references for all selected rows in the subgrid
var selectedEntityReferences = [];
var selectedRows = Xrm.Page.getControl("Contacts").getGrid().getSelectedRows();
selectedRows.forEach(function (selectedRow, i) {
 selectedEntityReferences.push(selectedRow.getData().getEntity().getEntityReference());
});

備考:

コレクション内のデータにアクセスするために使用できるメソッドの詳細については、「コレクション (クライアント側の参照)」を参照してください。

getTotalRecordCount

Web アプリケーションまたは Outlook 用 Dynamics 365 クライアントで、サーバーに接続中に、このメソッドは、ビューのフィルター条件を満たすレコードの総数を返します。この総数は、1 つのページに表示される数に限定されません。

Outlook 用 Dynamics 365 クライアントがサーバーに接続していないときは、この値は、ユーザーがオフラインで取得したレコードに限定されます。

タブレット PC 用 Microsoft Dynamics 365 と 電話用 Microsoft Dynamics 365 の場合、このメソッドは、サブグリッド内のレコードの数を返します。

戻り値の種類: 数値

例:filteredRecordCount 変数を、ビューのフィルター条件に一致するレコードの総数に設定します。

var filteredRecordCount = Xrm.Page.getControl("Contacts").getGrid().getTotalRecordCount();

GridRow

GridRow.getData メソッドを使用して、GridRowData にアクセスします。Grid.getRows および Grid.getSelectedRows メソッドによって、GridRow コレクションが返されます。

getData

GridRow の GridRowData を返します。

戻り値の種類:GridRowData

例:allGridRowDataArray 変数に、取引先担当者サブグリッドのすべての行の GridRowData を設定します。

var allGridRowData = [];
var rows = Xrm.Page.getControl("Contacts").getGrid().getRows();
rows.forEach(function (row, i) {
 allGridRowData.push(row.getData());
});

GridRowData

GridRowData.getEntity メソッドを使用して、GridEntity にアクセスします。GridRow..getData メソッドによって、GridRowData が返されます。

getEntity

GridRowData の GridEntity を返します。

戻り値の種類:GridEntity

例:allGridEntitiesArray 変数に、取引先担当者サブグリッドのすべての行の GridEntity を設定します。

var allGridEntities = [];
var rows = Xrm.Page.getControl("Contacts").getGrid().getRows();
rows.forEach(function (row, i) {
 allGridEntities.push(row.getData().getEntity());
});

GridEntity

GridEntity メソッドを使用して、行内の特定のレコードについてのデータにアクセスします。GridRowData.getEntity メソッドによって、GridEntity が返されます。

getEntityName

行内のレコードの論理名を返します。

戻り値の種類: 文字列

例:firstEntityType 変数を、取引先担当者サブグリッド内の最初の行のエンティティ論理名の値に設定します。

var firstEntityType = Xrm.Page.getControl("Contacts").getGrid().getRows().get(0).getData().getEntity().getEntityName();
// firstEntityType == "contact"

getEntityReference

戻り値の種類: 検索

例:firstEntityType 変数を、取引先担当者サブグリッド内の最初の行のエンティティ参照情報に設定します。

var firstEntityReference = Xrm.Page.getControl("Contacts").getGrid().getRows().get(0).getData().getEntity().getEntityReference();
// firstEntityReference.entityType == "contact"
// firstEntityReference.id == "{13CD16BD-3EC4-E411-80CF-00155DB58496}"
// firstEntityReference.name == "Rene Valdes (sample)"

備考:

この検索には以下のプロパティがあります。

名前

種類

説明

entityType

文字列

行内のレコードの論理名。GridEntity.getEntityName メソッドによって返される同じデータ。

id

文字列

行内のレコードの ID。GridEntity.getId メソッドによって返される同じデータ。

名前

文字列

行内のレコードの主属性の値。GridEntity.getPrimaryAttributeValue メソッドによって返される同じデータ。

getId

行内のレコードの ID を返します。

戻り値の種類: 文字列

例:firstEntityId 変数を、取引先担当者サブグリッド内の最初の行のレコードの ID の値に設定します。

var firstEntityId = Xrm.Page.getControl("Contacts").getGrid().getRows().get(0).getData().getEntity().getId();
// firstEntityId == "{13CD16BD-3EC4-E411-80CF-00155DB58496}"

getPrimaryAttributeValue

行内のレコードの主属性の値を返します。

戻り値の種類: 文字列

例:currentView 変数を、取引先担当者サブグリッドのビュー セレクターの現在のビューに設定します。

var firstEntityPrimaryAttributeValue = Xrm.Page.getControl("Contacts").getGrid().getRows().get(0).getData().getEntity().getPrimaryAttributeValue();
// firstEntityPrimaryAttributeValue == "Rene Valdes (sample)"

ViewSelector

ViewSelector メソッドを使用して、サブグリッド コントロールのビュー セレクターに関する情報を取得または設定します。

注意

ビュー セレクターを表示するようにサブグリッド コントロールが構成されていない場合、ViewSelector メソッドを呼び出すと、エラーがスローされます。

getCurrentView

このメソッドを使用して、現在のビューを参照します。

戻り値の種類: 検索オブジェクト

例:currentView 変数を、取引先担当者サブグリッドのビュー セレクターの現在のビューに設定します。

var currentView = Xrm.Page.getControl("Contacts").getViewSelector().getCurrentView();

備考:

ビュー セレクターが表示されるようにサブグリッド コントロールが構成されていない場合、GridControl.getViewSelector メソッドによって返される ViewSelector でこのメソッドを呼び出すと、エラーがスローされます。

isVisible

このメソッドを使用して、ビュー セレクターが表示可能かどうかを確認します。

戻り値の種類: ブール値

例:viewSelectorIsVisible 変数を設定して、取引先担当者サブグリッドのビュー セレクターの可視性の状態を表します。

var viewSelectorIsVisible = Xrm.Page.getControl("Contacts").getViewSelector().isVisible();

備考:

ビュー セレクターが表示されるようにサブグリッド コントロールが構成されていない場合、GridControl.getViewSelector によって返される ViewSelector でこのメソッドを呼び出すと、エラーがスローされます。

setCurrentView

メソッドを使用して、現在のビューを設定します。

パラメーターの種類: 検索オブジェクト

例: 取引先担当者サブグリッドの現在のビューになるように、ContactsIFollow 変数を設定します。

var ContactsIFollow = {
 entityType: 1039, // SavedQuery
 id:"{3A282DA1-5D90-E011-95AE-00155D9CFA02}", 
 name: "Contacts I Follow"
}
//Set the view using ContactsIFollow
Xrm.Page.getControl("Contacts").getViewSelector().setCurrentView(ContactsIFollow);

備考:

ビュー セレクターが表示されるようにサブグリッド コントロールが構成されていない場合、GridControl.getViewSelector によって返される ViewSelector でこのメソッドを呼び出すと、エラーがスローされます。

この検索には以下のプロパティがあります。

名前

種類

内容

entityType

数値

ユーザーが選択可能なビューを表す、SavedQuery (1039) または UserQuery (4230) のオブジェクトの種類コード。

id

文字列

ユーザーが選択できるビューの ID。

名前

文字列

ユーザーが選択できるビューの名前。

関連項目

サブグリッドに対するスクリプトの作成
Xrm.Page.ui コントロール (クライアント側の参照)
コレクション (クライアント側の参照)
クライアント側のプログラミング リファレンス
Microsoft Dynamics 365 フォームのコードを記述する
クライアントの Microsoft Dynamics 365 の拡張

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権