MainContext

Le MainContext composant est utilisé pour encapsuler un ou plusieurs RecordContexts, SubGrids, ou ManyToManyLookupEditors et coordonne sauvegarder, rafraîchir, valider et suivre les états inactifs à travers tous.

Composants enfants

A MainContext peut contenir n’importe quelle combinaison des composants enfants suivants :

  • RecordContext — Enveloppe un seul enregistrement Dataverse pour l’édition.
  • SubGrid — Affiche et gère une collection de documents connexes.
  • ManyToManyLookupEditor — Gère les relations de multiples.
React
Blazor

Sauvetage

Incluez un SaveContextButton intérieur MenuBar pour permettre aux utilisateurs de persévérer les changements. Lorsque le bouton d’enregistrement est cliqué, tous les enregistrements défectueux sur tous les composants enfants sont sauvegardés dans une seule requête transactionnelle vers Dataverse. Si un enregistrement ne s’enregistre pas, toute la transaction est annulée et aucun changement n’est poursuivi.

React
Blazor

Rafraîchissant

Inclure un RefreshContextButton pour permettre aux utilisateurs de supprimer les modifications non enregistrées et de recharger les enregistrements depuis Dataverse. S’il y a des modifications non enregistrées, l’utilisateur reçoit une notification de confirmation avant que le rafraîchissement ne soit effectué.

Validation

Par défaut, il MainContext valide tous les composants enfants avant de sauvegarder. Réglez ForceSuccessfulValidationBeforeSave pour false désactiver ce comportement.

React
Blazor

Suivi de l’État Sale

Il MainContext suit automatiquement si un composant enfant présente des modifications non enregistrées via cette IsDirty propriété. Si un utilisateur tente de s’éloigner de la page alors qu’il y a des modifications non enregistrées, une boîte de dialogue de confirmation s’affiche. Réglez DisableUnsavedChangesWarning pour true supprimer ce dialogue pour les changements de navigation. L’avertissement est toujours affiché lors du rafraîchissement, quel que soit ce réglage.

React
Blazor

Arrêt interceptif

Utilisez le OnBeforeSave rappel pour exécuter une logique personnalisée avant l’opération de sauvegarde. Réglez CancelEventArgs.Cancel pour true empêcher la sauvegarde de continuer.

React
Blazor

Exemple

L’exemple suivant montre un MainContext avec deux RecordContextsboutons , un MenuBar avec des boutons de sauvegarde et de rafraîchissement, ainsi qu’un gestionnaire personnalisé OnBeforeSave .

Exemple de réaction
Exemple de Blazor
Sauvegarder Rafraîchissement
Enregistrement de contact
Dossier du compte
React TypeScript
Razor
Réagir Blazor

MainContext Classe

Paramètres

Nom
Type
Par défaut
Description
ChildContentRenderFragment?
Les composants enfants sont rendus dans ce contexte.
DisableUnsavedChangesWarningbool?
Lorsqu’elle est réglée sur true, la boîte d’avertissement des modifications non enregistrées n’est pas affichée lors de la navigation hors de la page. L’avertissement est toujours affiché lors du rafraîchissement, quel que soit ce réglage. Si elle n’est pas explicitement définie, la valeur est héritée du contexte parent.
ForceSuccessfulValidationBeforeSavebool
True
Si une validation réussie de l’enregistrement est effectuée avant d’autoriser sa sauvegarde.
IsDirtybool
False
Indique si ce contexte ou tout enfant enregistré présente des modifications non enregistrées.
ParentContextMainContext?
L’ancêtre le plus proche, MainContext, permettant des hiérarchies de contextes imbriqués.
Nom: ChildContent
Type: RenderFragment?
Description: Les composants enfants sont rendus dans ce contexte.
Nom: DisableUnsavedChangesWarning
Type: bool?
Description: Lorsqu’elle est réglée sur true, la boîte d’avertissement des modifications non enregistrées n’est pas affichée lors de la navigation hors de la page. L’avertissement est toujours affiché lors du rafraîchissement, quel que soit ce réglage. Si elle n’est pas explicitement définie, la valeur est héritée du contexte parent.
Nom: ForceSuccessfulValidationBeforeSave
Type: bool
Par défaut: True
Description: Si une validation réussie de l’enregistrement est effectuée avant d’autoriser sa sauvegarde.
Nom: IsDirty
Type: bool
Par défaut: False
Description: Indique si ce contexte ou tout enfant enregistré présente des modifications non enregistrées.
Nom: ParentContext
Type: MainContext?
Description: L’ancêtre le plus proche, MainContext, permettant des hiérarchies de contextes imbriqués.

Événements

Nom
Type
Description
OnBeforeSaveEventCallback<CancelEventArgs>
Rappel a appelé avant de sauvegarder. Cela permet d’annuler l’opération de sauvegarde.
Nom: OnBeforeSave
Type: EventCallback<CancelEventArgs>
Description: Rappel a appelé avant de sauvegarder. Cela permet d’annuler l’opération de sauvegarde.

Méthodes

Nom
Paramètres
Type
Description
GetRequestsList<OrganizationRequest>
Collecte et renvoie toutes les requêtes de sauvegarde en attente provenant de ce contexte et de ses enfants.
RefreshAsyncbool forceRefresh
Task
Cela rafraîchit ce contexte et tous les composants enfants enregistrés.
ResetStatevoid
Réinitialise en attendant les changements dans ce contexte et tous les enfants enregistrés.
SaveAsyncbool? refresh
Task<bool>
Sauvegardez le contexte ainsi que les contextes enfants (grille, enregistrement, etc.).
Validatebool
Valide ce contexte et tous les composants enfants enregistrés.
Nom: GetRequests
Type: List<OrganizationRequest>
Description: Collecte et renvoie toutes les requêtes de sauvegarde en attente provenant de ce contexte et de ses enfants.
Nom: RefreshAsync
Paramètres: bool forceRefresh
Type: Task
Description: Cela rafraîchit ce contexte et tous les composants enfants enregistrés.
Nom: ResetState
Type: void
Description: Réinitialise en attendant les changements dans ce contexte et tous les enfants enregistrés.
Nom: SaveAsync
Paramètres: bool? refresh
Type: Task<bool>
Description: Sauvegardez le contexte ainsi que les contextes enfants (grille, enregistrement, etc.).
Nom: Validate
Type: bool
Description: Valide ce contexte et tous les composants enfants enregistrés.