ASP:HIDDENFIELD |
ASP : Champ caché |
|---|---|
| ASP.NET | Framework .NET 2+ |
Syntaxe
|
<asp:HiddenField paramètres> </asp:HiddenField > |
Paramètres
| Paramètre | Description | ||
|---|---|---|---|
| EnableTheming=valeur | Ce paramètre permet d'indiquer si le thème de la balise doit être affiché ou non : | ||
| Constante | Description | ||
| "False" | Cette constante permet d'indiquer que le thème de la balise n'est pas affiché. | ||
| "True" | Cette constante permet d'indiquer que le thème de la balise est affiché. | ||
| EnableViewState=valeur | Ce paramètre permet d'indiquer si le ViewState de la balise doit être activé ou non : | ||
| Constante | Description | ||
| "False" | Cette constante permet d'indiquer que le ViewState de la balise n'est pas actif. | ||
| "True" | Cette constante permet d'indiquer que le ViewState de la balise est actif. | ||
| ID=valeur | Ce paramètre permet d'indiquer l'identificateur de la balise. | ||
| OnDataBinding=valeur | Ce paramètre permet d'indiquer le gestionnaire d'événement de DataBinding. | ||
| OnDisposed=valeur | Ce paramètre permet d'indiquer le gestionnaire d'événement de disposition. | ||
| OnInit=valeur | Ce paramètre permet d'indiquer le gestionnaire d'événement d'initialisation. | ||
| OnLoad=valeur | Ce paramètre permet d'indiquer le gestionnaire d'événement de chargement. | ||
| OnPreRender=valeur | Ce paramètre permet d'indiquer le gestionnaire d'événement de pré-rendu. | ||
| OnUnload=valeur | Ce paramètre permet d'indiquer le gestionnaire d'événement de déchargement. | ||
| runat=valeur | Ce paramètre permet d'indiquer où doit être exécuté la balise : | ||
| Constante | Description | ||
| "server" | Cette constante permet d'indiquer qu'il faut exécuter la balise du côté serveur. | ||
| SkinID=valeur | Ce paramètre permet d'indiquer l'identificateur de Skin. | ||
| Style=valeur | Ce paramètre de balise permet d'indiquer des paramètres de feuille de style associé avec cette balise. | ||
| Value=valeur | Ce paramètre de balise permet d'indiquer la valeur que doit contenir ce champ et qu'il retournera avec le formulaire. | ||
| Visible=valeur | Ce paramètre permet d'indiquer si la balise doit être affiché ou non : | ||
| Constante | Description | ||
| "False" | Cette constante permet d'indiquer que la balise n'est pas affiché. | ||
| "True" | Cette constante permet d'indiquer que la balise est affiché. | ||
Description
Cette balise permet d'ajouter champ caché utiliser pour retourner une valeur non perceptible par l'utilisateur.
Remarques
- Le contrôle <asp:HiddenField> permet de stocker des informations dans une page web sans les afficher à l'utilisateur. C'est un outil utile pour conserver des données entre deux postbacks, comme un identifiant d'utilisateur ou une valeur temporaire.
- Ce champ est totalement invisible à l'écran, car il est rendu en HTML comme un <input type="hidden">. Cela signifie qu'il ne perturbe pas la mise en page de l'interface tout en permettant d'échanger des données côté serveur.
- Le contrôle nécessite l'attribut runat="server" pour être manipulé dans le code-behind. Grâce à cela, on peut accéder facilement à sa valeur avec la propriété Value en lecture comme en écriture.
- Même s'il est invisible, le champ est envoyé dans chaque requête HTTP. Il peut donc être utilisé pour transmettre des données persistantes entre plusieurs chargements de page, sans dépendre du ViewState.
- Contrairement à une variable de session, les données entreposées dans un HiddenField sont exposées dans le code source HTML. Elles peuvent donc être lues et modifiées côté client, ce qui exige une grande prudence.
- Il ne faut jamais y entreposer de données sensibles (mots de passe, rôles, autorisations...), car elles peuvent être falsifiées avec des outils comme les DevTools du navigateur. Il est essentiel de toujours valider côté serveur.
- Le contrôle peut être très utile pour passer des identifiants ou des codes techniques entre différentes étapes d'un formulaire multi-pages, sans devoir tout recharger depuis la base de données à chaque fois.
- La valeur du champ peut aussi être définie côté client avec JavaScript, ce qui permet d'envoyer dynamiquement des données au serveur sans affichage explicite. Cela rend le HiddenField utile dans les architectures AJAX ou SPA simples.
- On peut facilement créer plusieurs HiddenField sur une même page, chacun avec son propre ID. Cela permet de gérer plusieurs morceaux d'informations simultanément, comme des filtres, des index, ou des états internes.
- Le contrôle est compatible avec les événements du cycle de vie ASP.NET. On peut définir sa valeur lors du Page_Load ou la récupérer dans les événements déclenchés par d'autres contrôles comme les boutons ou les listes.
- Sa légèreté est un atout : un HiddenField ne consomme que peu de ressources serveur ou client. Il peut être préféré à des contrôles plus lourds lorsque seule une donnée doit être conservée sans affichage.
- Dans une logique de développement propre, il est conseillé de bien nommer chaque HiddenField selon sa fonction (exemple : HiddenUserId, HiddenPageIndex), afin de faciliter la maintenance du code.
- On peut également utiliser le HiddenField pour stocker des informations de synchronisation côté client, comme des horodatages, des jetons anti-duplication ou des informations techniques non critiques.
- Il est possible de récupérer sa valeur en JavaScript via document.getElementById('ID').value, ce qui permet de synchroniser son contenu avec d'autres champs ou événements côté client.
- Dans les interfaces complexes utilisant UpdatePanel, le HiddenField est souvent utilisé pour transmettre des instructions précises lors des postbacks désynchronisés (exemple : quelles sections rafraîchir, quel état afficher).
Exemple
Voici un exemple permettant d'afficher la valeur caché soumise avec le formulaire :
- <%@ Page Language="vb" AutoEventWireup="false" CodeBehind="asphiddenfield.aspx.vb" %>
- <script runat="server">
- Sub Button1_Click(sender As Object, e As EventArgs)
- Me.valeurRetourner.Text = Me.MaValeurCache.Value
- End Sub
- </script>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head runat="server">
- <title></title>
- </head>
- <body>
- <form id="form1" runat="server">
- <div>
- <asp:HiddenField id="MaValeurCache" Value="Gladir.com" runat="Server"></asp:HiddenField>
- <asp:Button id="Button1" onclick="Button1_Click" runat="server" Text="Button"></asp:Button>
- </div>
- </form>
- <asp:Label runat="server">MaValeurCache : </asp:Label><asp:Label id="valeurRetourner" runat="server"></asp:Label>
- </body>
- </html>
on obtiendra le résultat semblable suivant :
|
|
Voir également
Articles - Les géants de l'informatique - Microsoft
Dernière mise à jour : Samedi, le 31 août 2017