ManyToManyLookupEditコンポーネントは、Dataverseレコード間の多対多(N:N)関係を管理するためのインライン自動補完エディタを提供します。現在関連付けられたレコードをチップとして表示し、ユーザーはフォームから離れることなく関連付けを検索・追加・削除できます。
コンポーネントを RecordContext に入れ、 RelationshipNameを指定します。このコンポーネントは関連するテーブルを自動的に解決し、関連するレコードを読み込み、新しい関連付けを追加するための検索可能なオートコンプリートドロップダウンを提供します。
<RecordContext table="account" queryParameterName="id">
<ManyToManyLookupEdit relationshipName="ppp_Account_ppp_Region_ppp_Region" />
</RecordContext><RecordContext TableName="account" QueryParameterName="id">
<ManyToManyLookupEdit RelationshipName="ppp_Account_ppp_Region_ppp_Region" />
</RecordContext>関連レコードの検索に利用可能なビューを ViewIds と DefaultViewId で制御してください。ビューの列はドロップダウンに表示され、ユーザーが正しいレコードを特定できるようになっています。ビューが指定されていない場合は、関連テーブルのデフォルトの公開ビューが使用されます。
<ManyToManyLookupEdit
relationshipName="ppp_Account_ppp_Region_ppp_Region"
viewIds={regionViews}
defaultViewId="..."
/>
const regionViews = ['...', '...'];<ManyToManyLookupEdit RelationshipName="ppp_Account_ppp_Region_ppp_Region"
ViewIds="_regionViews"
DefaultViewId="@(new Guid("..."))" />
@code {
private List<Guid> _regionViews = new List<Guid>
{
new Guid("..."),
new Guid("..."),
};
}関連レコード数に制約を設けるために、 MinimumNumberOfItems と MaximumNumberOfItems を活用してください。最小値を設定すると、自動的にフィールドが必須と表示されます。
<ManyToManyLookupEdit
relationshipName="ppp_Account_ppp_Region_ppp_Region"
minimumNumberOfItems={1}
maximumNumberOfItems={3}
/><ManyToManyLookupEdit RelationshipName="ppp_Account_ppp_Region_ppp_Region"
MinimumNumberOfItems="1"
MaximumNumberOfItems="3" />変更はアソシエイトおよび解除の保留中として追跡されます。親 MainContext が保存されると、これらのリクエストは他のレコード変更とともにトランザクション保存操作に含まれます。
<MainContext>
<MenuBar>
<SaveContextButton />
</MenuBar>
<RecordContext table="account" queryParameterName="id">
<ColumnEdit columnName="name" />
<ManyToManyLookupEdit
relationshipName="ppp_Account_ppp_Region_ppp_Region"
minimumNumberOfItems={1}
maximumNumberOfItems={3}
/>
</RecordContext>
</MainContext><MainContext>
<MenuBar>
<SaveContextButton />
</MenuBar>
<RecordContext TableName="account" QueryParameterName="id">
<ColumnEdit ColumnName="name" />
<ManyToManyLookupEdit RelationshipName="ppp_Account_ppp_Region_ppp_Region"
MinimumNumberOfItems="1"
MaximumNumberOfItems="3" />
</RecordContext>
</MainContext>以下の例は、多対多の関係に結びついた基本的な ManyToManyLookupEdit を示しています。
以下の操作方法を使って、 ReadOnly、 Disabled、 MinimumNumberOfItems、 MaximumNumberOfItems のプロパティを探検してください。
名称 | 種類 | デフォルト | 概要 |
|---|---|---|---|
ChildContent | RenderFragment? | コンポーネントの子コンテンツ | |
Context | MainContext? | この編集者を登録するカスケーディングコンテキストで、協調したセーブ操作に対応します。 | |
DefaultViewId | Guid? | 関連レコードを閲覧する際にデフォルトでどのビューを使うべきかを指定します。 | |
Description | string? | 説明はツールチップに表示されます。 | |
Disabled | bool? | エディターを無効にすべきか。 | |
DisplayLabelWhenAvailable | bool | True | ラベルが可能であれば表示するかどうかを明記しています。 |
DisplayTooltipWhenAvailable | bool | True | ツールチップが表示されるかどうかを指定します。 |
DisplayValidationErrorMessage | bool | True | コンポーネントが検証に失敗したときに検証エラーメッセージを表示するべきでしょうか? |
IsDirty | bool | False | まだ保存されていない保留中のアソシエーション変更や離脱の変更があるかどうかを示す値が付与されます。 |
IsVisible | bool | True | エディターは見えますか? |
Label | string? | 編集者用のラベルとして表示されるテキスト。 | |
MaximumNumberOfItems | int? | 選択可能な関連レコードの最大数。 | |
MaxRecordsReturned | int | 20 | Dataverseで関連レコードを検索する際の最大レコード数。 |
MinimumNumberOfItems | int? | 編集者が有効とみなされるために選択しなければならない最低限の関連レコード数。 | |
ReadOnly | bool? | エディターは読み取り専用であるべきです。 | |
RelationshipName* | string | この編集者が管理しているDataverseの多対多関係名です。 | |
Required | bool? | 価値が求められるかどうか。 | |
ViewIds | List<Guid>? | 関連レコードの閲覧に利用可能なビューの制限;空の場合はデフォルトの公開ビューが使われます。 |
ChildContentContextDefaultViewIdDescriptionDisabledDisplayLabelWhenAvailableDisplayTooltipWhenAvailableDisplayValidationErrorMessageIsDirtyIsVisibleLabelMaximumNumberOfItemsMaxRecordsReturnedMinimumNumberOfItemsReadOnlyRelationshipName*RequiredViewIds名称 | パラメータ | 種類 | 概要 |
|---|---|---|---|
GetRequests | List<OrganizationRequest> | 現在の選択を永続化させるために実行しなければならない保留中の Requests.OrganizationRequest 操作(アソシエイトおよびデアソシエイト)を返します。 | |
GetValidationErrors | List<string> | 現在の選択に関する検証エラーを返します。最小および最大アイテム数ルールの違反も含まれます。 | |
RefreshAsync | bool forceRefresh | Task | グリッドに提供されたデータソースから現在のデータを再取得しレンダリングするよう指示します。 |
ResetState | void | 保留中の関連付けおよび解消の変更をすべてクリアし、エディターを最後に保存した状態にリセットします。 | |
Validate | bool | 現在の選択が設定された最小および最大アイテム数の制約を満たした場合に |
GetRequestsRequests.OrganizationRequest 操作(アソシエイトおよびデアソシエイト)を返します。GetValidationErrorsRefreshAsyncResetStateValidate