Le ManyToManyLookupEdit composant fournit un éditeur d’autocomplétion en ligne pour gérer les relations plusieurs-à-plusieurs (N :N) entre les enregistrements Dataverse. Il affiche les enregistrements actuellement associés sous forme de puces et permet aux utilisateurs de rechercher, d’ajouter et de supprimer des associations sans avoir à s’éloigner du formulaire.
Placez le composant dans un RecordContext et spécifiez le RelationshipName. Le composant résout automatiquement la table associée, charge les enregistrements associés et fournit une liste déroulante d’autocomplétion consultable pour ajouter de nouvelles associations.
<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>Utiliser ViewIds et DefaultViewId contrôler les vues disponibles pour la recherche dans les documents liés. Les colonnes de la vue sont affichées dans le menu déroulant pour aider les utilisateurs à identifier le bon enregistrement. Si aucune vue n’est spécifiée, la vue publique par défaut pour le tableau correspondant est utilisée.
<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("..."),
};
}Utiliser MinimumNumberOfItems et MaximumNumberOfItems faire respecter des contraintes sur le nombre d’enregistrements associés. Définir un minimum marque automatiquement le champ comme requis.
<ManyToManyLookupEdit
relationshipName="ppp_Account_ppp_Region_ppp_Region"
minimumNumberOfItems={1}
maximumNumberOfItems={3}
/><ManyToManyLookupEdit RelationshipName="ppp_Account_ppp_Region_ppp_Region"
MinimumNumberOfItems="1"
MaximumNumberOfItems="3" />Les changements sont suivis comme des demandes d’associés et de dissociation en attente. Lorsque le parent MainContext est sauvegardé, ces requêtes sont incluses dans l’opération de sauvegarde transactionnelle aux côtés de tout autre changement d’enregistrement.
<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>L’exemple suivant montre une borne de base ManyToManyLookupEdit à une relation de plusieurs.
Utilisez les commandes ci-dessous pour explorer les ReadOnlypropriétés, Disabled, MinimumNumberOfItems, et MaximumNumberOfItems les propriétés.
Nom | Type | Par défaut | Description |
|---|---|---|---|
ChildContent | RenderFragment? | Contenu enfant du composant | |
Context | MainContext? | Contexte en cascade qui enregistre cet éditeur pour des opérations de sauvegarde coordonnées. | |
DefaultViewId | Guid? | Précise quelle vue doit être utilisée par défaut lors de la navigation des enregistrements associés. | |
Description | string? | Description à afficher dans l’infobulle. | |
Disabled | bool? | Si l’éditeur est désactivé. | |
DisplayLabelWhenAvailable | bool | True | Précise s’il faut afficher une étiquette si disponible. |
DisplayTooltipWhenAvailable | bool | True | Précise s’il faut afficher une infobulle si disponible. |
DisplayValidationErrorMessage | bool | True | Un message d’erreur de validation doit-il s’afficher lorsque le composant échoue à la validation ? |
IsDirty | bool | False | Obtient une valeur indiquant s’il y a des modifications d’association ou de dissociation en attente qui n’ont pas encore été sauvegardées. |
IsVisible | bool | True | L’éditeur est-il visible ? |
Label | string? | Le texte doit être affiché comme une étiquette pour l’éditeur. | |
MaximumNumberOfItems | int? | Nombre maximal d’enregistrements connexes pouvant être sélectionnés. | |
MaxRecordsReturned | int | 20 | Nombre maximal d’enregistrements retournés depuis Dataverse lors de la recherche d’enregistrements associés. |
MinimumNumberOfItems | int? | Nombre minimum d’enregistrements liés à sélectionner pour que l’éditeur soit considéré comme valide. | |
ReadOnly | bool? | L’éditeur devrait-il être en lecture seule ? | |
RelationshipName* | string | Le nom de relation multi-à-nombre Dataverse que cet éditeur gère. | |
Required | bool? | Si la valeur est requise. | |
ViewIds | List<Guid>? | Limites des vues disponibles pour la navigation dans les dossiers associés ; s’il est vide, la vue publique par défaut est utilisée. |
ChildContentContextDefaultViewIdDescriptionDisabledDisplayLabelWhenAvailableDisplayTooltipWhenAvailableDisplayValidationErrorMessageIsDirtyIsVisibleLabelMaximumNumberOfItemsMaxRecordsReturnedMinimumNumberOfItemsReadOnlyRelationshipName*RequiredViewIdsNom | Paramètres | Type | Description |
|---|---|---|---|
GetRequests | List<OrganizationRequest> | Retourne les opérations en attente Requests.OrganizationRequest (associer et dissocier) qui doivent être exécutées pour perdurer la sélection courante. | |
GetValidationErrors | List<string> | Des erreurs de validation de retour pour la sélection en cours, y compris des violations des règles de nombre minimum et maximum d’articles. | |
RefreshAsync | bool forceRefresh | Task | Demande à la grille de récupérer et de rendre les données courantes de la source de données fournie. |
ResetState | void | Efface tous les changements d’association et de dissociation en attente, réinitialisant l’éditeur à son dernier état sauvegardé. | |
Validate | bool | Retour |
GetRequestsRequests.OrganizationRequest (associer et dissocier) qui doivent être exécutées pour perdurer la sélection courante.GetValidationErrorsRefreshAsyncResetStateValidate