MainContext

El MainContext componente se utiliza para encapsular uno o más RecordContexts, SubGrids, ManyToManyLookupEditors o y coordina guardar, actualizar, validar y rastrear estados sucios en todos ellos.

Componentes Hijos

A MainContext puede contener cualquier combinación de los siguientes componentes hijos:

  • RecordContext — Envuelve un único registro Dataverse para su edición.
  • SubGrid — Exhibe y gestiona una colección de registros relacionados.
  • ManyToManyLookupEditor — Gestiona relaciones de muchos a muchos.
React
Blazor

Ahorro

Incluye un SaveContextButton dentro de una MenuBar para permitir que los usuarios persistan los cambios. Cuando se hace clic en el botón de guardar, todos los registros sucios de todos los componentes hijos se guardan en una única solicitud transaccional a Dataverse. Si algún registro no se guarda, toda la transacción se revierte y no se continúan cambios.

React
Blazor

Refrescante

Incluye un RefreshContextButton para permitir a los usuarios descartar los cambios no guardados y recargar los registros desde Dataverse. Si hay cambios no guardados, se le indica un diálogo de confirmación al usuario antes de realizar la actualización.

Validación

Por defecto, valida MainContext todos los componentes hijos antes de guardar. Configura ForceSuccessfulValidationBeforeSave para false desactivar este comportamiento.

React
Blazor

Seguimiento de estado sucio

El MainContext sistema rastrea automáticamente si algún componente hijo tiene cambios no guardados a través de la IsDirty propiedad. Si un usuario intenta alejarse de la página mientras hay cambios sin guardar, se muestra un cuadro de confirmación. Configura DisableUnsavedChangesWarning para true suprimir este diálogo para cambios de navegación. La advertencia siempre aparece al actualizar, independientemente de esta configuración.

React
Blazor

Parada de intercepción

Usa la OnBeforeSave callback para ejecutar lógica personalizada antes de la operación de guardado. Configura CancelEventArgs.Cancel para true evitar que la partida de salvación continúe.

React
Blazor

Ejemplo

El siguiente ejemplo demuestra a MainContext con dos RecordContexts, a MenuBar con los botones de guardar y actualizar, y un manejador personalizado OnBeforeSave .

Ejemplo de reacción
Ejemplo de Blazor
Salvar Actualizar
Registro de contacto
Registro de la cuenta
React TypeScript
Razor
Reaccionar Blazor

MainContext Clase

Parámetros

Nombre
Tipo
Default
Descripción
ChildContentRenderFragment?
Los componentes hijos representados dentro de este contexto.
DisableUnsavedChangesWarningbool?
Cuando se configura en true, el cuadro de advertencia de cambios no guardados no se muestra al alejarse de la página. La advertencia siempre aparece al actualizar, independientemente de esta configuración. Si no se establece explícitamente, el valor se hereda del contexto padre.
ForceSuccessfulValidationBeforeSavebool
True
¿Debería realizarse una validación exitosa del registro antes de permitir que se guarde?
IsDirtybool
False
Indica si este contexto o cualquier hijo registrado tiene cambios no guardados.
ParentContextMainContext?
El antepasado más cercano, MainContext, que permite jerarquías de contexto anidado.
Nombre: ChildContent
Tipo: RenderFragment?
Descripción: Los componentes hijos representados dentro de este contexto.
Nombre: DisableUnsavedChangesWarning
Tipo: bool?
Descripción: Cuando se configura en true, el cuadro de advertencia de cambios no guardados no se muestra al alejarse de la página. La advertencia siempre aparece al actualizar, independientemente de esta configuración. Si no se establece explícitamente, el valor se hereda del contexto padre.
Nombre: ForceSuccessfulValidationBeforeSave
Tipo: bool
Default: True
Descripción: ¿Debería realizarse una validación exitosa del registro antes de permitir que se guarde?
Nombre: IsDirty
Tipo: bool
Default: False
Descripción: Indica si este contexto o cualquier hijo registrado tiene cambios no guardados.
Nombre: ParentContext
Tipo: MainContext?
Descripción: El antepasado más cercano, MainContext, que permite jerarquías de contexto anidado.

Eventos

Nombre
Tipo
Descripción
OnBeforeSaveEventCallback<CancelEventArgs>
Llamó la llamada antes de guardar. Permite cancelar la operación de guardado.
Nombre: OnBeforeSave
Tipo: EventCallback<CancelEventArgs>
Descripción: Llamó la llamada antes de guardar. Permite cancelar la operación de guardado.

Métodos

Nombre
Parámetros
Tipo
Descripción
GetRequestsList<OrganizationRequest>
Recoge y devuelve todas las solicitudes de guardado pendientes de este contexto y sus hijos.
RefreshAsyncbool forceRefresh
Task
Actualiza este contexto y todos los componentes hijos registrados.
ResetStatevoid
Reinicia pendientes de cambios en este contexto y de todos los niños registrados.
SaveAsyncbool? refresh
Task<bool>
Guarda el contexto y cualquier contexto hijo (cuadra, registro, etc.).
Validatebool
Valida este contexto y todos los componentes hijos registrados.
Nombre: GetRequests
Tipo: List<OrganizationRequest>
Descripción: Recoge y devuelve todas las solicitudes de guardado pendientes de este contexto y sus hijos.
Nombre: RefreshAsync
Parámetros: bool forceRefresh
Tipo: Task
Descripción: Actualiza este contexto y todos los componentes hijos registrados.
Nombre: ResetState
Tipo: void
Descripción: Reinicia pendientes de cambios en este contexto y de todos los niños registrados.
Nombre: SaveAsync
Parámetros: bool? refresh
Tipo: Task<bool>
Descripción: Guarda el contexto y cualquier contexto hijo (cuadra, registro, etc.).
Nombre: Validate
Tipo: bool
Descripción: Valida este contexto y todos los componentes hijos registrados.