MainContext

O MainContext componente é usado para encapsular um ou mais RecordContexts, SubGrids, ManyToManyLookupEditors ou coordena e coordena save, refresh, validation e rastreamento de estado sujo entre todos eles.

Componentes Filhos

A MainContext pode conter qualquer combinação dos seguintes componentes filhos:

  • RecordContext — Envolve um único registro do Dataverse para edição.
  • SubGrid — Exibe e gerencia uma coleção de registros relacionados.
  • ManyToManyLookupEditor — Gerencia relacionamentos muitos-para-muitos.
React
Blazor

Salvando

Inclua um SaveContextButton dentro de um MenuBar para permitir que os usuários persistam as alterações. Quando o botão de salvar é clicado, todos os registros sujos de todos os componentes filhos são salvos em uma única requisição transacional para o Dataverse. Se algum registro falhar ao salvar, toda a transação é revertida e nenhuma alteração é mantida.

React
Blazor

Refrescante

Inclua um RefreshContextButton para permitir que os usuários descartem alterações não salvas e recarreguem os registros do Dataverse. Se houver alterações não salvas, o usuário recebe uma mensagem de confirmação antes da atualização ser realizada.

Validação

Por padrão, valida MainContext todos os componentes filhos antes de salvar. Defina ForceSuccessfulValidationBeforeSave para false desativar esse comportamento.

React
Blazor

Rastreamento de Estado Sujo

Ele MainContext rastreia automaticamente se algum componente filho tem alterações não salvas via a IsDirty propriedade. Se um usuário tentar sair da página enquanto há alterações não salvas, uma caixa de confirmação é exibida. Defina DisableUnsavedChangesWarning para true suprimir esse diálogo para alterações de navegação. O aviso sempre aparece ao atualizar, independentemente dessa configuração.

React
Blazor

Interceptação de Defesa

Use o OnBeforeSave callback para rodar lógica personalizada antes da operação de salvamento. Definido CancelEventArgs.Cancel para true impedir que o teste continue com o save.

React
Blazor

Exemplo

O exemplo a seguir demonstra a MainContext com dois RecordContexts, a MenuBar com os botões de salvar e atualizar, e um handler personalizado OnBeforeSave .

Exemplo de reação
Exemplo de Blazor
Salvar Atualizar
Registro de Contato
Registro da Conta
React TypeScript
Razor
React Blazor

MainContext Classe

Parâmetros

Nome
Tipo
Padrão
Descrição
ChildContentRenderFragment?
Os componentes filhos renderizados dentro desse contexto.
DisableUnsavedChangesWarningbool?
Quando configurado como true, o diálogo de aviso de alterações não salvas não é exibido ao navegar para fora da página. O aviso sempre aparece ao atualizar, independentemente dessa configuração. Se não for explicitamente definido, o valor é herdado do contexto pai.
ForceSuccessfulValidationBeforeSavebool
True
Deve ser realizada uma validação bem-sucedida do registro antes de permitir que o registro seja salvo.
IsDirtybool
False
Indica se esse contexto ou qualquer filho registrado tem alterações não salvas.
ParentContextMainContext?
O ancestral mais próximo é o MainContext, permitindo hierarquias de contexto aninhado.
Nome: ChildContent
Tipo: RenderFragment?
Descrição: Os componentes filhos renderizados dentro desse contexto.
Nome: DisableUnsavedChangesWarning
Tipo: bool?
Descrição: Quando configurado como true, o diálogo de aviso de alterações não salvas não é exibido ao navegar para fora da página. O aviso sempre aparece ao atualizar, independentemente dessa configuração. Se não for explicitamente definido, o valor é herdado do contexto pai.
Nome: ForceSuccessfulValidationBeforeSave
Tipo: bool
Padrão: True
Descrição: Deve ser realizada uma validação bem-sucedida do registro antes de permitir que o registro seja salvo.
Nome: IsDirty
Tipo: bool
Padrão: False
Descrição: Indica se esse contexto ou qualquer filho registrado tem alterações não salvas.
Nome: ParentContext
Tipo: MainContext?
Descrição: O ancestral mais próximo é o MainContext, permitindo hierarquias de contexto aninhado.

Eventos

Nome
Tipo
Descrição
OnBeforeSaveEventCallback<CancelEventArgs>
O retorno chamou antes de salvar. Permite cancelar a operação de salvamento.
Nome: OnBeforeSave
Tipo: EventCallback<CancelEventArgs>
Descrição: O retorno chamou antes de salvar. Permite cancelar a operação de salvamento.

Métodos

Nome
Parâmetros
Tipo
Descrição
GetRequestsList<OrganizationRequest>
Coleta e retorna todos os pedidos de salvamento pendentes deste contexto e seus filhos.
RefreshAsyncbool forceRefresh
Task
Atualiza esse contexto e todos os componentes filhos registrados.
ResetStatevoid
Resetas pendentes de mudanças nesse contexto e todas as crianças registradas.
SaveAsyncbool? refresh
Task<bool>
Salve o contexto e quaisquer contextos filhos (grade, registro, etc).
Validatebool
Valida esse contexto e todos os componentes filhos registrados.
Nome: GetRequests
Tipo: List<OrganizationRequest>
Descrição: Coleta e retorna todos os pedidos de salvamento pendentes deste contexto e seus filhos.
Nome: RefreshAsync
Parâmetros: bool forceRefresh
Tipo: Task
Descrição: Atualiza esse contexto e todos os componentes filhos registrados.
Nome: ResetState
Tipo: void
Descrição: Resetas pendentes de mudanças nesse contexto e todas as crianças registradas.
Nome: SaveAsync
Parâmetros: bool? refresh
Tipo: Task<bool>
Descrição: Salve o contexto e quaisquer contextos filhos (grade, registro, etc).
Nome: Validate
Tipo: bool
Descrição: Valida esse contexto e todos os componentes filhos registrados.