Aller au contenu principal

LgYearBox

LgYearBox<TValue> permet de saisir ou de sélectionner une année via un champ texte doublé d'un sélecteur d'années. Contrairement au reste de la famille date (LgDateBox), la valeur liée est un entier (int ou int?) : l'année elle-même.

<LgYearBox Label="#FiscalYear" @bind-Value="_model.FiscalYear" />
  • Espace de noms : Lagoon.UI.Components
  • Hérite de : LgInputRenderBase<TValue> → LgInputBase<TValue> → LgAriaComponentBase → LgComponentBase
  • Package NuGet : Lagoon.UI

Le suffixe du champ est réservé : le composant y place automatiquement l'icône calendrier (Suffix / SuffixType sont écrasés à l'initialisation).

Utilisation​

Démonstration​

Essayez ce composant dans le showcase Lagoon.

Saisie simple​

BudgetPage.razor
<LgYearBox Label="#FiscalYear" @bind-Value="_model.FiscalYear" />
BudgetPage.razor.cs
public partial class BudgetPage : LgPage
{
// Modèle édité : l'année est nullable pour autoriser un champ vide.
private readonly BudgetVm _model = new();

private sealed class BudgetVm
{
public int? FiscalYear { get; set; }
}
}

Bornes de sélection​

Min et Max (des entiers) désactivent les années hors bornes dans le sélecteur.

ArchivePage.razor
<LgYearBox Label="#ArchiveYear"
Min="2000"
Max="2026"
@bind-Value="_model.ArchiveYear" />
ArchivePage.razor.cs
public partial class ArchivePage : LgPage
{
private readonly ArchiveVm _model = new();

private sealed class ArchiveVm
{
public int? ArchiveYear { get; set; }
}
}

Réagir au changement de valeur​

OnChangingAsync est appelé avant l'affectation et permet d'annuler le changement (args.Cancel) ; OnChange (hérité) est appelé après.

CampaignPage.razor
<LgYearBox Label="#CampaignYear"
OnChangingAsync="OnYearChangingAsync"
@bind-Value="_model.CampaignYear" />
CampaignPage.razor.cs
public partial class CampaignPage : LgPage
{
private readonly CampaignVm _model = new();

// Appelé avant le changement : refuse les années sans campagne connue.
private Task OnYearChangingAsync(ChangingEventArgs<int?> args)
{
if (args.NewValue < 2010)
{
args.Cancel = true;
ShowWarning("#NoCampaignBefore2010");
}
return Task.CompletedTask;
}

private sealed class CampaignVm
{
public int? CampaignYear { get; set; }
}
}

Propriétés​

Toutes les propriétés [Parameter] du composant, y compris celles héritées.

NomTypeDéfautDéclaré dansDescription
Maxint?nullLgYearBoxAnnée la plus tardive sélectionnable ; les années ultérieures sont désactivées.
Minint?nullLgYearBoxAnnée la plus ancienne sélectionnable ; les années antérieures sont désactivées.
OnChangingAsyncFunc<ChangingEventArgs<TValue>, Task>nullLgYearBoxCallback appelé avant le changement de valeur ; le changement peut y être annulé.
OnFocusEventCallback<FocusEventArgs>—LgYearBoxCallback appelé à la prise de focus.
PlaceholderstringnullLgYearBoxTexte indicatif affiché quand le champ est vide.
PrefixstringnullLgInputRenderBasePréfixe affiché dans le champ.
PrefixTypeInputLabelTypeTextLgInputRenderBaseNature du préfixe.
Suffixstring(icône calendrier)LgInputRenderBaseSuffixe affiché dans le champ. Réservé : le composant y place l'icône calendrier.
SuffixTypeInputLabelTypeIconNameLgInputRenderBaseNature du suffixe. Réservé par le composant.
AdditionalAttributesIReadOnlyDictionary<string, object>nullLgInputBaseAttributs HTML additionnels appliqués à l'élément rendu.
AutoFocusboolfalseLgInputBaseDonne le focus au champ lors du premier rendu.
ConfirmationMessagestringnullLgInputBaseMessage de confirmation affiché avant d'appliquer un changement de valeur.
ContainerIInputContainer<TValue>nullLgInputBaseUsage interne : rattache une cellule de GridView au champ.
CssClassstringnullLgInputBaseClasses CSS additionnelles.
DisabledboolfalseLgInputBaseDésactive le champ.
DisplayNamestringnullLgInputBaseNom du champ utilisé dans les messages d'erreur de saisie.
HideValidationMessageboolfalseLgInputBaseMasque le message de validation sous le champ.
LabelstringnullLgInputBaseLibellé du champ.
LabelContentRenderFragmentnullLgInputBaseContenu personnalisé de la zone de libellé.
OnChangeEventCallback<ChangeEventArgs>—LgInputBaseCallback appelé après le changement de valeur.
OnResetEventCallback<ChangeEventArgs>—LgInputBaseCallback appelé quand le champ est réinitialisé par le bouton d'effacement.
PolicyEditstringnullLgInputBasePolicy requise pour modifier le champ.
PolicyVisiblestringnullLgInputBasePolicy requise pour afficher le champ.
ReadOnlyboolfalseLgInputBaseAffiche le champ en lecture seule.
Requiredbool?nullLgInputBaseChamp obligatoire. Si null, déduit de l'attribut [Required] de la propriété liée.
ResetButtonbool?nullLgInputBaseAffiche le bouton d'effacement. Si null, la configuration de comportement de l'application s'applique.
ResetTextstringnullLgInputBaseTexte du bouton d'effacement.
ResetTextAriaLabelstringnullLgInputBaseLibellé accessible (aria-label) du bouton d'effacement.
TooltipstringnullLgInputBaseBulle d'aide.
TooltipIsHtmlboolfalseLgInputBaseIndique si le contenu du Tooltip est au format HTML (sinon texte brut).
ValueTValue—LgInputBaseValeur liée (@bind-Value), de type int ou int?.
ValueChangedEventCallback<TValue>—LgInputBaseCallback de mise à jour de la valeur liée.
ValueExpressionExpression<Func<TValue>>—LgInputBaseExpression identifiant la propriété liée.
AriaLabelstringnullLgAriaComponentBaseValeur de l'attribut aria-label.
AriaLabelledBystringnullLgAriaComponentBaseValeur de l'attribut aria-labelledby.
Paramètres en cascade

LgYearBox consomme aussi des paramètres fournis automatiquement par des composants ancêtres (vous n'avez pas à les définir) : ParentAuthorizeView (LgAuthorizeView) et le contexte d'édition d'un LgEditForm parent.

Événements​

ÉvénementTypeDescription
OnChangingAsyncFunc<ChangingEventArgs<TValue>, Task>Avant le changement de valeur ; args.Cancel = true annule le changement.
OnChangeEventCallback<ChangeEventArgs>Après le changement de valeur.
OnFocusEventCallback<FocusEventArgs>À la prise de focus du champ.
OnResetEventCallback<ChangeEventArgs>À la réinitialisation par le bouton d'effacement.

Bonnes pratiques / accessibilité​

  • La valeur liée doit être int ou int? : tout autre type provoque une erreur à l'exécution.
  • Ne définissez pas Suffix / SuffixType : ils sont écrasés par l'icône calendrier à l'initialisation du composant.
Référence complète

Tous les paramètres (hérités compris) : Référence API — LgYearBox.

Composants liés​