LgPasteButton
LgPasteButton est un bouton qui récupère le texte du presse-papiers du
navigateur lorsqu'il est cliqué. Il dérive de LgButton et
prend en charge la liaison de données (Value / ValueChanged) ainsi que la
validation au sein d'un EditForm.
<LgPasteButton @bind-Value="Model.Reference" />
- Espace de noms :
Lagoon.UI.Components - Hérite de :
LgButton→LgAriaComponentBase→LgComponentBase - Package NuGet :
Lagoon.UI
Le constructeur prédéfinit l'icône (IconNames.All.Clipboard), la bulle d'aide
(#lgPasteButtonTooltip) et l'action de clic (collage). Lorsque le navigateur
n'autorise pas l'accès direct au presse-papiers, une fenêtre modale de collage
est ouverte automatiquement.
Utilisation
Démonstration
Essayez ce composant dans le showcase Lagoon.
Liaison de données
Utilisez @bind-Value pour affecter directement le texte collé au modèle. Le composant conserve les propriétés de LgButton pour l'apparence, les policies et les raccourcis.
<LgPasteButton @bind-Value="Model.Reference"
Text="#PasteReference"
Kind="ButtonKind.Secondary" />
public partial class ReferencePastePage : LgPage
{
// Champ mis à jour par le presse-papiers lors du clic sur le bouton.
private ReferenceVm Model { get; } = new();
private sealed class ReferenceVm
{
public string Reference { get; set; }
}
}
Avec interception du collage
OnPaste est déclenché avant l'affectation de Value. Modifiez ClipboardTextEventArg.Value pour nettoyer, convertir ou remplacer la valeur collée.
<LgPasteButton Value="@Model.Reference"
ValueChanged="OnReferenceChangedAsync"
OnPaste="NormalizePasteAsync" />
public partial class ReferencePasteNormalizePage : LgPage
{
// Référence métier alimentée soit par collage direct, soit par le callback ValueChanged.
private ReferenceVm Model { get; } = new();
// Nettoie le texte avant affectation pour stocker une référence homogène dans le modèle.
private Task NormalizePasteAsync(ClipboardTextEventArg arg)
{
arg.Value = arg.Value?.Trim().ToUpperInvariant();
return Task.CompletedTask;
}
// Met à jour le modèle après normalisation, comme le ferait @bind-Value.
private Task OnReferenceChangedAsync(string value)
{
Model.Reference = value;
return Task.CompletedTask;
}
private sealed class ReferenceVm
{
public string Reference { get; set; }
}
}
Validation dans un formulaire
Dans un LgEditForm, fournissez ValueExpression avec la liaison pour notifier l'EditContext après le collage et déclencher les messages de validation du champ.
<LgEditForm Model="Model">
<LgPasteButton @bind-Value="Model.Reference"
ValueExpression="@(() => Model.Reference)"
Text="#PasteReference" />
</LgEditForm>
public partial class ReferenceFormPage : LgPage
{
// Modèle validé par le formulaire : le collage notifie ce champ via ValueExpression.
private ReferenceVm Model { get; } = new();
private sealed class ReferenceVm
{
public string Reference { get; set; }
}
}
Fenêtre de collage de secours
Si le navigateur refuse l'accès direct au presse-papiers, LgPasteButton ouvre automatiquement une modale de collage. Aucun paramètre supplémentaire n'est nécessaire : gardez simplement OnPaste et ValueChanged pour traiter la valeur finale de la même manière.
<LgPasteButton @bind-Value="Model.Reference"
OnPaste="NormalizePasteAsync"
Tooltip="#PasteReferenceTooltip" />
public partial class ReferencePasteFallbackPage : LgPage
{
// Valeur finale alimentée aussi bien par l'accès direct que par la modale de secours.
private ReferenceVm Model { get; } = new();
// Applique la même règle métier quelle que soit la méthode de collage utilisée par le navigateur.
private Task NormalizePasteAsync(ClipboardTextEventArg arg)
{
arg.Value = arg.Value?.Trim();
return Task.CompletedTask;
}
private sealed class ReferenceVm
{
public string Reference { get; set; }
}
}
Propriétés
Propriétés propres
| Nom | Type | Défaut | Déclaré dans | Description |
|---|---|---|---|---|
Value | string | null | LgPasteButton | Valeur récupérée depuis le presse-papiers après le clic. |
ValueChanged | EventCallback<string> | — | LgPasteButton | Callback de mise à jour de la valeur liée (@bind-Value). |
ValueExpression | Expression<Func<string>> | null | LgPasteButton | Expression identifiant la valeur liée (validation EditContext). |
OnPaste | EventCallback<ClipboardTextEventArg> | — | LgPasteButton | Callback déclenché lors du collage ; permet de lire ou modifier la valeur collée. |
Propriétés héritées
LgPasteButton hérite de toutes les propriétés de
LgButton (Kind, ButtonSize, Disabled,
CssClass, Tooltip, PolicyVisible, etc.).
Le composant consomme l'EditContext (CascadingParameter) fourni par un
EditForm parent : il est utilisé, conjointement à ValueExpression, pour
déclencher la validation du champ après un collage.
Événements
| Événement | Type | Description |
|---|---|---|
OnPaste | EventCallback<ClipboardTextEventArg> | Déclenché au moment du collage, avant l'affectation de Value. |
ValueChanged | EventCallback<string> | Déclenché lorsque la valeur liée change. |
Paramètres hérités de LgButton
| Paramètre | Type | Description |
|---|---|---|
Text | string | Libellé du bouton. |
IconName | string | Icône du bouton. |
ChildContent | RenderFragment | Contenu personnalisé du bouton. |
OnClick | EventCallback<ActionEventArgs> | Déclenché au clic. |
IsSubmit | bool | Le bouton est de type « submit ». |
ConfirmationMessage | string | Message de confirmation avant l'action (incompatible avec CommandName). |
CommandName / CommandArgument | string / object | Commande envoyée au gestionnaire de commandes et son argument. |
Link / Uri / Target | LgPageLink / string / string | Navigation : lien typé, URI à ouvrir, fenêtre cible. |
ShortcutKey | string | Caractère (avec CTRL) déclenchant le clic. |
PreventDoubleClick | bool | Désactive le bouton pendant l'exécution de l'action. |
PreventDefault / StopPropagation | bool | Contrôle de la propagation de l'évènement. |
AutoFocus | bool | Donne le focus au composant au premier rendu. |
PolicyEdit / PolicyVisible | string | Policies d'édition/visibilité. |
Tooltip / TooltipIsHtml | string / bool | Bulle d'aide et son format. |
AriaLabel / AriaLabelledBy | string | Accessibilité ARIA. |
AdditionalAttributes | IReadOnlyDictionary<string, object> | Attributs HTML additionnels. |
En cascade : ButtonSizeCascading (taille héritée d'un ancêtre) et ParentAuthorizeView (policies d'un ancêtre).
Énumérations associées
Ces boutons héritent des énumérations de LgButton : ButtonKind, ButtonSize, TooltipPosition.
Composants liés
LgCopyButton— bouton de copie dans le presse-papiers.LgButton— bouton de base.