グリッド (読み取り専用) のオブジェクトとメソッド (クライアント側の参照)
公開日: 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. 著作権