El ManyToManyLookupEdit componente proporciona un editor de autocompletado en línea para gestionar relaciones de muchos a muchos (N:N) entre registros de Dataverse. Muestra los registros actualmente asociados como chips y permite a los usuarios buscar, añadir y eliminar asociaciones sin tener que salir del formulario.
Coloca el componente dentro de a RecordContext y especifica el RelationshipName. El componente resuelve automáticamente la tabla relacionada, carga los registros asociados y proporciona un desplegable de autocompletado con búsqueda para añadir nuevas asociaciones.
<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>Usar ViewIds y DefaultViewId para controlar qué vistas están disponibles para buscar en registros relacionados. Las columnas de la vista se muestran en el desplegable para ayudar a los usuarios a identificar el registro correcto. Si no se especifican vistas, se utiliza la vista pública predeterminada para la tabla relacionada.
<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("..."),
};
}Utilizar MinimumNumberOfItems y MaximumNumberOfItems para imponer restricciones sobre el número de registros asociados. Establecer un mínimo marca automáticamente el campo como se requiere.
<ManyToManyLookupEdit
relationshipName="ppp_Account_ppp_Region_ppp_Region"
minimumNumberOfItems={1}
maximumNumberOfItems={3}
/><ManyToManyLookupEdit RelationshipName="ppp_Account_ppp_Region_ppp_Region"
MinimumNumberOfItems="1"
MaximumNumberOfItems="3" />Los cambios se registran como solicitudes pendientes de asociados y disociaciones. Cuando se guarda el padre MainContext , estas peticiones se incluyen en la operación de guardado transaccional junto con cualquier otro cambio de registro.
<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>El siguiente ejemplo muestra un vínculo básico ManyToManyLookupEdit a una relación de muchos a muchos.
Utiliza los controles a continuación para explorar las ReadOnlypropiedades, Disabled, MinimumNumberOfItems, y MaximumNumberOfItems .
Nombre | Tipo | Default | Descripción |
|---|---|---|---|
ChildContent | RenderFragment? | Contenido hijo del componente | |
Context | MainContext? | Contexto en cascada que registra este editor para operaciones de guardado coordinadas. | |
DefaultViewId | Guid? | Especifica qué vista debe usarse como predeterminada al navegar por registros relacionados. | |
Description | string? | La descripción se mostrará en la descripción emergente. | |
Disabled | bool? | ¿Debería desactivar el editor? | |
DisplayLabelWhenAvailable | bool | True | Especifica si mostrar una lable si está disponible. |
DisplayTooltipWhenAvailable | bool | True | Especifica si mostrar una descripción emergente si está disponible. |
DisplayValidationErrorMessage | bool | True | ¿Debe mostrarse un mensaje de error de validación cuando el componente falla en la validación? |
IsDirty | bool | False | Recibe un valor que indica si hay cambios pendientes de asociación o disociación que aún no se han guardado. |
IsVisible | bool | True | ¿El editor es visible? |
Label | string? | El texto se mostrará como etiqueta para el editor. | |
MaximumNumberOfItems | int? | Número máximo de registros relacionados que pueden ser seleccionados. | |
MaxRecordsReturned | int | 20 | Número máximo de registros devueltos desde Dataverse al buscar registros relacionados. |
MinimumNumberOfItems | int? | Número mínimo de registros relacionados que deben seleccionarse para que el editor se considere válido. | |
ReadOnly | bool? | ¿Debería el editor ser solo lectura? | |
RelationshipName* | string | El nombre de relación muchos-a-muchos de Dataverse que gestiona este editor. | |
Required | bool? | Si el valor es necesario. | |
ViewIds | List<Guid>? | Límites de las vistas disponibles para consultar registros relacionados; si está vacío, se utiliza la vista pública predeterminada. |
ChildContentContextDefaultViewIdDescriptionDisabledDisplayLabelWhenAvailableDisplayTooltipWhenAvailableDisplayValidationErrorMessageIsDirtyIsVisibleLabelMaximumNumberOfItemsMaxRecordsReturnedMinimumNumberOfItemsReadOnlyRelationshipName*RequiredViewIdsNombre | Parámetros | Tipo | Descripción |
|---|---|---|---|
GetRequests | List<OrganizationRequest> | Devuelve las operaciones pendientes Requests.OrganizationRequest (asociar y disociar) que deben ejecutarse para persistir la selección actual. | |
GetValidationErrors | List<string> | Errores de validación de devoluciones para la selección actual, incluyendo violaciones de las reglas de número mínimo y máximo de elementos. | |
RefreshAsync | bool forceRefresh | Task | Indica a la cuadrícula que vuelva a buscar y renderice los datos actuales de la fuente de datos suministrada. |
ResetState | void | Borra todos los cambios pendientes de asociación y disociación, restableciendo el editor a su último estado guardado. | |
Validate | bool | Devuelve |
GetRequestsRequests.OrganizationRequest (asociar y disociar) que deben ejecutarse para persistir la selección actual.GetValidationErrorsRefreshAsyncResetStateValidate