LgWeekBox
LgWeekBox<TValue> permet de sélectionner une semaine. Il fait partie de
la famille des champs date (LgDateBox) dont il hérite
tout le comportement : le calendrier sélectionne une semaine entière et le
champ affiche le numéro de semaine. Le type lié peut être une date classique
(DateOnly, DateTime, DateTimeOffset ou nullable) ou le type dédié
WeekYear, qui porte le numéro de semaine ISO et l'année.
<LgWeekBox Label="#DeliveryWeek" @bind-Value="_model.DeliveryWeek" />
- Espace de noms :
Lagoon.UI.Components - Hérite de :
LgDateBox<TValue>→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.
Sélection simple
<LgWeekBox Label="#DeliveryWeek" @bind-Value="_model.DeliveryWeek" />
public partial class DeliveryPage : LgPage
{
private readonly DeliveryVm _model = new();
private sealed class DeliveryVm
{
public DateTime? DeliveryWeek { get; set; }
}
}
Semaine et année avec WeekYear
Lié à un WeekYear, le composant manipule directement le couple numéro de
semaine ISO / année, sans passer par une date.
<LgWeekBox Label="#ProductionWeek" @bind-Value="_model.ProductionWeek" />
public partial class ProductionPage : LgPage
{
private readonly ProductionVm _model = new();
private sealed class ProductionVm
{
// WeekYear? : porte le numéro de semaine ISO et l'année, sans jour précis.
public WeekYear? ProductionWeek { get; set; }
}
}
Premier jour de la semaine et bornes
WeekStart change le premier jour de la semaine (lundi par défaut) ; Min et
Max bornent la sélection.
<LgWeekBox Label="#ScheduledWeek"
WeekStart="DayOfWeek.Sunday"
Min="_minDate"
Max="_maxDate"
@bind-Value="_model.ScheduledWeek" />
public partial class SchedulePage : LgPage
{
// Horizon de planification : borne le calendrier de sélection de semaine.
private readonly DateTime _minDate = new(2026, 1, 1);
private readonly DateTime _maxDate = new(2026, 12, 31);
private readonly ScheduleVm _model = new();
private sealed class ScheduleVm
{
public DateOnly? ScheduledWeek { get; set; }
}
}
Réagir au changement de valeur
OnChangingAsync (hérité de LgDateBox) est appelé avant l'affectation et
permet d'annuler le changement (args.Cancel) ; OnChange est appelé après.
<LgWeekBox Label="#MaintenanceWeek"
OnChangingAsync="OnWeekChangingAsync"
@bind-Value="_model.MaintenanceWeek" />
public partial class MaintenancePage : LgPage
{
private readonly MaintenanceVm _model = new();
// Appelé avant le changement : refuse une semaine déjà passée.
private Task OnWeekChangingAsync(ChangingEventArgs<DateTime?> args)
{
if (args.NewValue < DateTime.Today)
{
args.Cancel = true;
ShowWarning("#WeekInPast");
}
return Task.CompletedTask;
}
private sealed class MaintenanceVm
{
public DateTime? MaintenanceWeek { get; set; }
}
}
Propriétés
Toutes les propriétés [Parameter] du composant, y compris celles héritées.
| Nom | Type | Défaut | Déclaré dans | Description |
|---|---|---|---|---|
AssumeNearbyYear | int | 20 | LgDateBox | Nombre d'années dans le futur pendant lesquelles une année saisie sur deux chiffres est rattachée au siècle courant. Une valeur inférieure à 1 désactive ce comportement. |
DefaultDateTimeKind | DateTimeKind | Unspecified | LgDateBox | DateTimeKind utilisé pour créer un nouveau DateTime. |
DefaultTime | TimeOnly? | null | LgDateBox | Heure utilisée pour créer un nouveau DateTime ou DateTimeOffset (minuit si null). |
DefaultTimeOffset | TimeSpan? | null | LgDateBox | Décalage horaire utilisé pour créer un nouveau DateTimeOffset (décalage du fuseau local si null). |
DisplayFormat | string | null | LgDateBox | Format d'affichage. Sans effet sur l'affichage du numéro de semaine. |
KeyboardDisabled | bool | false | LgDateBox | Interdit la modification au clavier : la valeur ne peut être choisie que dans le calendrier. |
Max | DateTime? | null | LgDateBox | Semaine la plus tardive sélectionnable ; les dates ultérieures sont désactivées. |
Min | DateTime? | null | LgDateBox | Semaine la plus ancienne sélectionnable ; les dates antérieures sont désactivées. |
OnChangeDisabled | bool | false | LgDateBox | Désactive l'événement onchange DOM au profit de oninput (utilisé pour éviter des erreurs quand le contrôle est retiré du rendu). |
OnChangingAsync | Func<ChangingEventArgs<TValue>, Task> | null | LgDateBox | Callback appelé avant le changement de valeur ; le changement peut y être annulé. |
OnFocus | EventCallback<FocusEventArgs> | — | LgDateBox | Callback appelé à la prise de focus. |
Placeholder | string | null | LgDateBox | Texte indicatif affiché quand le champ est vide. |
WeekStart | DayOfWeek | Monday | LgDateBox | Premier jour de la semaine (utilisé pour le calcul du numéro de semaine et l'affichage du calendrier). |
Prefix | string | null | LgInputRenderBase | Préfixe affiché dans le champ. |
PrefixType | InputLabelType | Text | LgInputRenderBase | Nature du préfixe. |
Suffix | string | (icône calendrier) | LgInputRenderBase | Suffixe affiché dans le champ. Réservé : le composant y place l'icône calendrier. |
SuffixType | InputLabelType | IconName | LgInputRenderBase | Nature du suffixe. Réservé par le composant. |
AdditionalAttributes | IReadOnlyDictionary<string, object> | null | LgInputBase | Attributs HTML additionnels appliqués à l'élément rendu. |
AutoFocus | bool | false | LgInputBase | Donne le focus au champ lors du premier rendu. |
ConfirmationMessage | string | null | LgInputBase | Message de confirmation affiché avant d'appliquer un changement de valeur. |
Container | IInputContainer<TValue> | null | LgInputBase | Usage interne : rattache une cellule de GridView au champ. |
CssClass | string | null | LgInputBase | Classes CSS additionnelles. |
Disabled | bool | false | LgInputBase | Désactive le champ. |
DisplayName | string | null | LgInputBase | Nom du champ utilisé dans les messages d'erreur de saisie. |
HideValidationMessage | bool | false | LgInputBase | Masque le message de validation sous le champ. |
Label | string | null | LgInputBase | Libellé du champ. |
LabelContent | RenderFragment | null | LgInputBase | Contenu personnalisé de la zone de libellé. |
OnChange | EventCallback<ChangeEventArgs> | — | LgInputBase | Callback appelé après le changement de valeur. |
OnReset | EventCallback<ChangeEventArgs> | — | LgInputBase | Callback appelé quand le champ est réinitialisé par le bouton d'effacement. |
PolicyEdit | string | null | LgInputBase | Policy requise pour modifier le champ. |
PolicyVisible | string | null | LgInputBase | Policy requise pour afficher le champ. |
ReadOnly | bool | false | LgInputBase | Affiche le champ en lecture seule. |
Required | bool? | null | LgInputBase | Champ obligatoire. Si null, déduit de l'attribut [Required] de la propriété liée. |
ResetButton | bool? | null | LgInputBase | Affiche le bouton d'effacement. Si null, la configuration de comportement de l'application s'applique. |
ResetText | string | null | LgInputBase | Texte du bouton d'effacement. |
ResetTextAriaLabel | string | null | LgInputBase | Libellé accessible (aria-label) du bouton d'effacement. |
Tooltip | string | null | LgInputBase | Bulle d'aide. |
TooltipIsHtml | bool | false | LgInputBase | Indique si le contenu du Tooltip est au format HTML (sinon texte brut). |
Value | TValue | — | LgInputBase | Valeur liée (@bind-Value) : date (DateOnly, DateTime, DateTimeOffset ou nullable) ou WeekYear / WeekYear?. |
ValueChanged | EventCallback<TValue> | — | LgInputBase | Callback de mise à jour de la valeur liée. |
ValueExpression | Expression<Func<TValue>> | — | LgInputBase | Expression identifiant la propriété liée. |
AriaLabel | string | null | LgAriaComponentBase | Valeur de l'attribut aria-label. |
AriaLabelledBy | string | null | LgAriaComponentBase | Valeur de l'attribut aria-labelledby. |
LgWeekBox 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énement | Type | Description |
|---|---|---|
OnChangingAsync | Func<ChangingEventArgs<TValue>, Task> | Avant le changement de valeur ; args.Cancel = true annule le changement. |
OnChange | EventCallback<ChangeEventArgs> | Après le changement de valeur. |
OnFocus | EventCallback<FocusEventArgs> | À la prise de focus du champ. |
OnReset | EventCallback<ChangeEventArgs> | À la réinitialisation par le bouton d'effacement. |
Énumérations associées
L'énumération InputLabelType (préfixe /
suffixe) est documentée sur LgDateBox, le composant de
base de la famille date.
Bonnes pratiques / accessibilité
- Utilisez
WeekYear?quand le métier raisonne en semaines : le couple semaine/année est porté tel quel, sans jour arbitraire. Liée à une date, la valeur est ramenée à la semaine sélectionnée (jour de référence de la semaine). - Ne définissez pas
Suffix/SuffixType: ils sont écrasés par l'icône calendrier à l'initialisation du composant.
Tous les paramètres (hérités compris) : Référence API — LgWeekBox.
Composants liés
LgDateBox— sélection d'un jour (composant de base).LgMonthBox— sélection d'un mois.LgYearBox— sélection d'une année.LgGridWeekColumn— colonne semaine d'unLgGridView.