Application |
HttpApplicationState = Page.Application |
Retourne une instance de la classe HttpApplicationState qui équivaut à l'objet Application intrinsèque d'ASP. Une instance de la classe HttpApplicationState contient des informations générales susceptibles d'être utilisées pour différentes sessions et requêtes au sein d'une application ASP.NET. Pour plus de détails concernant la classe HttpApplicationState et ses éléments, voir le chapitre 13.
Paramètres HttpApplicationState Une variable du type HttpApplicationState qui reçoit l'instance de la classe HttpApplicationState .
Exemple
L'échantillon de code suivant utilise la propriété Application de l'objet Page pour ajouter un nom et une valeur à l'objet Application et affiche la valeur dans un contrôle d'étiquette. Etant donné que toutes les propriétés de l'objet Page sont présentées directement à l'ensemble des codes associés à la page, il n'est pas nécessaire de nommer de façon explicite la classe Page (c'est à dire, Page.Application ) pour accéder à la propriété Application.
    Sub Page_Load(  )
       Application("Name") = "John Doe"
       Message.Text = "The value <em>" & CStr(Application("Name")) & _
          "</em> has been added to the Application collection."
    End Sub
Remarques
Bien qu'il soit possible de récupérer une référence d'objet locale à l'instance HttpApplicationState pour l'application, l'exemple ci-après montre que la manière la plus fréquente d'utiliser cette propriété consiste à y accéder directement par le biais de la propriété Application.

Cache |
Cache = Page.Cache |
Retourne une instance de la classe Cache qui représente le cache pour un domaine d'application. Grâce à la propriété Cache, il est possible d'ajouter des données au cache et de les y récupérer.
Paramètres Cache Une variable de type Cache chargée de recevoir les instances Cache.
Exemple
L'échantillon de code suivant ajoute deux paires de noms et de valeurs à l'objet Cache à l'aide de la propriété Cache de la classe Page et affiche les valeurs dans un contrôle d'étiquette utilisant la propriété Page object's Cache:
    Sub Page_Load(o As Object, e As EventArgs)
       Cache("Name") = "John Doe"
       Cache("Age") = 42
       Message.Text = CStr(Cache.Item("Name")) & " is " & _
          CStr(Cache("Age")) & " years old."
    End Sub
Remarques
Comme dans le cas de l'objet Application, il est plus fréquent d'accéder directement à l'objet Cache par le biais de la propriété Cache que par l'obtention d'une référence d'objet locale à l'instance Cache de l'application. Le chapitre 13 examine les cas dans lesquels il est préférable d'utiliser le Cache ASP.NET plutôt que la collection d'états Application, et inversement. La classe Cache comprend les éléments suivants:
Elément Cache | Description
--- | ---
Méthode Addition | Ajoute un élément au cache
Propriété Count | Indique le nombre d'éléments présents dans le cache.
Méthode Get | Retourne un objet représentant des données du cache avec une valeur clé spécifique
Méthode Insert | Insère un élément dans le cache et lui assigne une clé
Propriété Item | Retourne un objet représentant un élément cache en fonction de sa valeur clé ou définit un élément de données dans le cache tout en lui assignant une valeur clé
Méthode Remove | Supprime un élément à valeur clé spécifique dans le cache

ClientTarget |
String = Page.ClientTarget |
Récupère ou définit une valeur de chaîne permettant d'annuler une détection automatique du navigateur dans ASP.NET et de forcer la représentation de page pour un type de navigateur configuré dans machine.config ou web.config, et spécifié par cette propriété. Les valeurs préconfigurées disponibles pour cette propriété sont: downlevel La page sera représentée en fonction des capacités du navigateur définies pour des navigateurs inconnus dans l'élément <browserCaps> de machine.config . ie4 La page sera représentée en fonction des paramètres de Microsoft Internet Explorer 4.0 configurés dans l'élément <browserCaps> de machine.config . ie5 La page sera représentée en fonction des paramètres de Microsoft Internet Explorer 5.0 configurés dans l'élément <browserCaps> de machine.config .
Paramètres String Une chaîne qui indique les objectifs de la page en termes d'alias de capacités du navigateur.
Exemple
L'échantillon de code suivant initialise la propriété ClientTarget de la classe Page à downlevel, tout en indiquant que ASP.NET doit représenter la page pour un type de navigateur inconnu, avec pour résultat un document compatible HTML 3.2 . L'exemple affiche ensuite un message indiquant si oui ou non un ensemble de paramètres est pris en charge. Dans le cas de downlevel, aucun des paramètres indiqués n'est pris en charge.
    Sub Page_Load(  )
       Page.ClientTarget = "downlevel"
          Message.Text = "Page is set to render for the " & _
       Page.ClientTarget & " alias.<br/>"
       Message.Text &= "Supported features:<br/>"
       Message.Text &= " - JavaScript: " & _
          Request.Browser.JavaScript & "<br/>"
       Message.Text &= " - ActiveX Controls: " & _
          Request.Browser.ActiveXControls & "<br/>"
       Message.Text &= " - Frames: " & _
          Request.Browser.Frames & "<br/>"
    End Sub
Remarques
Le ClientTarget peut également être spécifié à l'aide de l'attribut ClientTarget ou de la directive @ Page . Si l'on change la valeur de la propriété ClientTarget dans l'exemple en ie4, le résultat indiquera que tous les paramètres de la liste sont pris en charge. Même si la plupart des contrôles de serveur retournent du HTML 3.2 pour l'ensemble des navigateurs, les contrôles de validation constituent un exemple de contrôles qui réagissent de façon différente, en fonction de la valeur de ClientTarget considérée. Si la propriété ClientTarget a pour valeur downlevel, la validation a lieu du côté serveur, ce qui signifie que si l'on voit la source, aucun script côté-client n'effectuera la validation. Si ClientTarget a pour valeur uplevel, les contrôles de validation émettent du JavaScript côté-client pour effectuer une validation côté-client également.

Context |
HttpContext = Page.Context |
Retourne une instance HttpContext contenant des informations en matière de contexte pour la requête HTTP actuelle.
Paramètres HttpContext Une variable de type HttpContext destinée à recevoir la référence à l'instance HttpContext actuelle.
Exemple
L'échantillon de code suivant utilise la propriété Context pour retourner le nom de l'utilisateur actuellement connecté. Il est également possible de se procurer cette donnée à partir de la propriété de la classe Page provenant du HttpContext associé à la requête actuelle.
    Sub Page_Load(  )
       Message.Text = "Currently logged in as: " & _
          Context.User.Identity.Name
    End Sub
Remarques
Une utilisation fréquente de cette propriété consiste à fournir une référence au HttpContext de la requête actuelle à un objet business souhaitant accéder aux objets ASP.NET intrinsèques (requête, réponse, etc.). Outre un accès aux valeurs intrinsèques d'application, de requête, de réponse, de serveur et de session, la classe HttpContext fournit un accès aux informations en matière de Trace et d'Utilisateur pour la requête HTTP actuelle.

EnableViewState |

    Boolean = Page.EnableViewState
    Page.EnableViewState = Boolean
Retourne ou définit une valeur booléenne qui indique si oui ou non la page conserve son statut d'affichage et celui des contrôles de serveur qu'elle contient. La valeur par défaut de cette propriété est True, ce qui signifie que la page conserve son statut d'affichage.
Paramètres booléens Une valeur booléenne qui indique si oui ou non la page conserve son statut d'affichage.
Exemple
L'échantillon de code suivant confère à EnableViewState la valeur False à l'aide de l'attribut EnableViewState de la directive @ Page et affiche les valeurs correspondantes sur la page:
    <%@ Page Language="vb" EnableViewState="True" %>
    <html>
       <head>
          <title></title>
          <script runat="server">
             Sub Page_Load(  )
                If Page.EnableViewState = True Then
                   Message.Text = "ViewState is enabled."
                Else
                   Message.Text = "ViewState is disabled."
                End If
             End Sub
          </script>
       </head>
    <body>
       <form runat="server">
          <asp:label id="Message" runat="server"/>
       </form>
    </body>
    </html>
Remarques
L'exemple ci-après montre qu'il est également possible de spécifier la propriété EnableViewState à l'aide de l'attribut EnableViewState de la directive @ Page . On peut constater les effets de la propriété EnableViewState en examinant le HTML source d'une page à l'aide d'une fonction View Source de navigateur. Si la propriété EnableViewState a pour valeur False, le code source aura l'aspect suivant:
    <input type="hidden" name="_  _VIEWSTATE"
           value="dDwxMDA3MzE2MzEyOzs+" />
Si la propriété EnableViewState a pour valeur True, le code source aura l'aspect suivant:
    <input type="hidden" name="_  _VIEWSTATE"
    value="dDwxMDA3MzE2MzEyO3Q8O2w8aTwxPjs+O2w8dDw7bDxpPDM+Oz47bDx0PHA8cDxsPF
    RleHQ7PjtsPFZhbHVlIG9mIHRoZSBFbmFibGVWaWV3U3RhdGUgcHJvcGVydHkgaXMgVHJ1ZTs
    +Pjs+Ozs+Oz4+Oz4+Oz4=" />
Les caractères supplémentaires de la valeur du champ masqué _ _VIEWSTATE indiquent l'état d'affichage de la page actuelle. L'état d'affichage de la page contient les propriétés transitoires des contrôles de serveur, comme BackColor ou ForeColor. Veuillez noter que les pages non dotées d'un élément <form> contenant l'attribut runat="server" n'enregistreront pas l'état d'affichage, quelle que soit la valeur de la propriété EnableViewState.

ErrorPage |
    String = Page.ErrorPage
    Page.ErrorPage = String
Retourne ou définit le nom de la page vers laquelle effectuer le retour en cas d'exception liée à l'absence de traitement d'une page.
Paramètres String Une valeur de chaîne qui indique le nom de la page vers laquelle effectuer le retour en cas d'exception liée à l'absence de traitement d'une page.
Exemple
L'exemple ci-dessous modifie la propriété ErrorPage et affiche le résultat de la page en cas d'exception liée à une absence de traitement:
    Sub Page_Load(  )
       Page.ErrorPage = "ErrorPage_Handler.aspx"
       Dim x, y, overflow As Integer
       x = 1
       y = 0
       overflow = x/y
       'This code will not be executed
       Message.Text = "Error Page is " & Page.ErrorPage & "."
    End Sub
Le Page_Load pour ErrorPage_Handler.aspx figure ci-dessous:
    Sub Page_Load(  )
       Message.Text = "We're sorry. An error occurred during the" & _
          " processing of your request. Please try again later."
    End Sub
Remarques
Il est également possible de spécifier la propriété ErrorPage à l'aide de l'attribut ErrorPage de la directive de @ Page .

IsPostBack |
Boolean = Page.IsPostBack |
Retourne une valeur booléenne qui indique si la page est chargée pour la première fois ( False ) ou est chargée à la suite du postback client ( True ). Cette propriété est utile pour l'exécution du code nécessaire lors de la première exécution de la page ou à chaque fois que celle-ci s'auto applique, en fonction de la façon dont vous structurez votre instruction If .
Paramètres booléens Une valeur booléenne qui indique si la page est chargée pour la première fois ou en tant que résultat du postback client.
Exemple
L'échantillon de code ci-dessous utilise la propriété IsPostBack pour afficher différents messages dans le contrôle Label, selon que la page est chargée pour la première fois ou en tant que résultat du postback client. Lors du premier chargement de la page, la propriété IsPostBack retourne la valeur False, ce qui entraîne l'affichage de la chaîne "Non-PostBack". Le fait de cliquer sur le bouton force à nouveau la page à s'auto-appliquer et amène le retour de la valeur True par IsPostBack, ainsi que l'affichage de la chaîne "PostBack".
    <%@ Page Language="vb" %>
    <html>
       <head>
          <title></title>
          <script runat="server">
             Sub Page_Load(  )
                If Page.IsPostBack Then
                   Message.Text = "PostBack"
                Else
                   Message.Text = "Non-PostBack"
                End If
             End Sub
          </script>
       </head>
    <body>
       <form runat="server">
          <asp:button id="post" Text="Post page" runat="server"/>
          <asp:label id="Message" runat="server"/>
       </form>
    </body>
    </html>
Remarques
La propriété IsPostBack affichera une valeur True uniquement dans le cas des pages contenant un élément <form> doté de l'attribut runat="server" et d'au moins un contrôle générateur de postback. Il peut s'agir d'un contrôle Button, comme l'illustre l'exemple présenté ci-dessus, ou d'un autre contrôle, de type DropDownList par exemple, et dont la propriété AutoPostBack a pour valeur True .

IsValid |
Boolean = Page.IsValid |
Retourne une valeur booléenne, indiquant si oui ou non un contrôle de validation quelconque de la page a été capable de valider les données utilisateur avec succès.
Paramètres booléens Une valeur booléenne indiquant si la validation a réussi ou non.
Exemple
L'exemple utilise la propriété IsValid pour déterminer si la validation de la page actuelle a réussi ou non et affiche un message:
    <%@ Page Language="vb" %>
    <html>
       <head>
          <title></title>
          <script runat="server">
             Sub Page_Load(  )
                If IsPostBack Then
                   Page.Validate(  )
                   If Page.IsValid Then
                      Message.Text = "Page is valid."
                   Else
                      Message.Text = "Page is not valid."
                   End If
                End If
             End Sub
          </script>
       </head>
    <body>
       <form runat="server">
          Enter your name:
          <asp:textbox id="name" runat="server"/>
          <asp:requiredfieldvalidator
             id="rfvName"
             controltovalidate="name"
             enableclientscript="false"
             errormessage="Required!"
             runat="server"/>
          <br/>
          <asp:button id="submit" Text="Submit" runat="server"/>
          <br/>
          <asp:label id="Message" runat="server"/>
       </form>
    </body>
    </html>
Remarques
La propriété IsValid sert à déterminer si le processus général de validation effectué par un contrôle de programme de validation de formulaire a réussi ou pas. Si la page ne comporte pas de contrôles de programmes de validation, la valeur de la propriété est toujours True . Avant de vérifier la valeur de IsValid, vous devez soit invoquer la méthode Page.Validate, comme l'illustre l'exemple présenté ci-dessus, soit avoir soumis la page à un contrôle (de type Button, ImageButton ou LinkButton) dont la propriété CausesValidation a pour valeur True . Sinon, une exception se produira. Dans l'exemple en question, la propriété EnableClientScript du contrôle RequiredFieldValidator a pour valeur False, ce qui désactive la validation côté-client. Par défaut, la validation côté-client est activée et la page n'est jamais soumise au serveur si la validation échoue. Les navigateurs de haut niveau effectuent une validation du client à l'aide de scripts côté-client, et ce n'est qu'en cas de succès de la validation que la soumission de la page a lieu. Il faut attendre la soumission de la page pour que le code de traitement d'événement côté-serveur soit exécuté et que le message soit affiché en fonction de la valeur de la propriété IsValid. Il est important de vérifier la propriété IsValid, que la validation côté-client soit activée ou non, étant donné qu'il se peut qu'un client mal intentionné contourne la validation côté-client.

Request |
HttpRequest = Page.Request |
Retourne une instance de la classe HttpRequest permettant d'accéder aux données des requêtes HTTP entrantes. Cela correspond à l'objet ASP intrinsic Request. Pour plus de détails concernant la classe HttpRequest, reportez-vous au chapitre 16.
Paramètres HttpRequest Un objet de type HttpRequest qui contient les données des requêtes HTTP entrantes.
Exemple
Les échantillons de code suivants utilisent la collection ServerVariables de l'objet HttpRequest pour afficher l'adresse IP du client qui formule la requête:
    Sub Page_Load(  )
       Message.Text = "The current request is from: " & _
          CStr(Request.ServerVariables.Item("REMOTE_ADDRESS"))
    End Sub
Remarques
Comme dans le cas des propriétés Application et Cache, bien qu'il soit possible de récupérer une référence locale à l'instance HttpRequest associée à la requête, il est plus fréquent d'accéder à l'instance directement à l'aide de la propriété Request, comme l'illustre l'exemple présenté ci-dessus.

Response |
HttpResponse = Page.Response |
Retourne une instance de la classe HttpResponse qui contient les informations concernant la réponse et nous permet d'envoyer les données de réponse HTTP à un navigateur. Elle correspond à l'objet ASP intrinsic Request. Pour plus de détails concernant la classe HttpResponse, reportez-vous au chapitre 17.
Paramètres HttpResponse Un objet de type HttpResponse qui reçoit l'instance de la classe HttpResponse .
Exemple
L'exemple suivant utilise la propriété Response de la page objet pour donner à la propriété ContentType de la classe HttpResponse la valeur text/xml . Le fait de définir cette propriété entraîne l'affichage du résultat de la page sous forme de balisage XML dans les versions 5.0 et suivantes de Microsoft Internet Explorer.
    Sub Page_Load(  )
       Response.ContentType = "text/xml"
       Message.Text = "This page will be displayed as XML in " & _
          "Internet Explorer 5.0 or above."
    End Sub
Remarques
Comme dans le cas des propriétés Application et Cache, bien qu'il soit possible de récupérer une référence locale à l'instance HttpResponse associée à la requête, il est plus fréquent d'accéder à cette instance directement à l'aide de la propriété Request, comme l'illustre l'exemple présenté ci-dessus.

Server |
HttpServerUtility = Page.Server |
Retourne une instance de la classe HttpServerUtility qui présente des méthodes utiles de traitement des requêtes ASP.NET. Pour plus de détails concernant la classe HttpServerUtility, reportez-vous au chapitre 18.
Paramètres HttpServerUtility Un objet du type HttpServerUtility pouvant servir à accéder aux propriétés et aux méthodes utiles figurant dans cette classe.
Exemple
L'échantillon de code suivant utilise la propriété Server pour accéder à la méthode HtmlEncode de la classe HttpServerUtility, qui permet d'encoder des balises et des caractères HTML tels qu'ils apparaîtront aux utilisateurs, plutôt que de confier leur interprétation et leur représentation au navigateur:
    Sub Page_Load(  )
       Message.Text = Server.HtmlEncode("<em>Hello, World!</em>")
    End Sub
Le HTML présenté par cette page aurait l'aspect suivant:
    <html>
       <head>
          <title>Server property example</title>
       </head>
    <body>
       <span id="Message">&lt;em&gt;Hello, World!&lt;/em&gt;</span>
    </body>
    </html>
Remarques
Comme dans le cas des propriétés Requête et Réponse, bien qu'il soit possible de récupérer une référence locale à l'instance HttpServerUtility associée à la requête, il est plus fréquent d'accéder à cette instance directement à l'aide de la propriété Server, comme l'illustre l'exemple présenté ci-dessus.

Session |
HttpSessionState = Page.Session |
Retourne un objet représentant la session utilisateur en cours. Une L'objet Session est conservé pour chaque utilisateur qui demande une page à une application ASP.NET. Il est possible de conserver des données spécifiques à la session dans l'objet Session, puis d'y accéder à partir de plusieurs pages différentes dans une application ASP.NET. Pour plus de détails concernant la classe HttpSessionState, reportez-vous au chapitre 19.
Paramètres HttpSessionState Un objet HttpSessionState représentant la session utilisateur en cours.
Exemple
L'exemple utilise l'objet Session pour afficher la valeur de la propriété Mode, qui indique l'endroit où les informations concernant l'état de la session sont conservées:
    Sub Page_Load(  )
       Message.Text = "Current Session State Mode: " &_
               Session.Mode.ToString(  )
    End Sub
Remarques
Comme dans le cas des propriétés Requête et Réponse, bien qu'il soit possible de récupérer une référence locale à l'instance HttpSessionState associée à la requête, il est plus fréquent d'accéder à cette instance directement à l'aide de la propriété Session, comme l'illustre l'exemple présenté ci-dessus.

SmartNavigation |
    Boolean = Page.EnableViewState
    Page.EnableViewState = Boolean
Retourne ou définit un paramètre booléen indiquant si la fonction SmartNavigation est active ou non. La fonction SmartNavigation, qui n'est compatible qu'avec Internet Explorer, utilise des éléments <iframe> pour la mise à jour partielle de la page lorsque celle-ci est réappliquée. Cela peut permettre d'éliminer le tremblement visuel gênant propre aux réapplications.
Paramètres booléens Une valeur booléenne qui indique si la fonction SmartNavigation est activée ou non.
Exemple
L'échantillon de code suivant confère à la propriété SmartNavigation la valeur True à l'aide de l'attribut SmartNavigation de la directive @ Page . Une fois la page réappliquée, seule la page actuelle sera conservée dans l'historique du navigateur et le bouton Retour sera par conséquent désactivé.
    <%@ Page Language="vb" SmartNavigation="True" %>
    <html>
       <head>
          <title>SmartNavigation property example</title>
          <script runat="server">
             Sub Page_Load(  )
                Message.Text = "This Label will change."
                Message2.Text = "This Label will not change."
             End Sub
             Sub UpdateLabel(Sender As Object, e As EventArgs)
                Message.Text = "This Label has changed."
             End Sub
          </script>
       </head>
    <body>
       <form runat="server">
          <asp:label id="Message" runat="server"/>
          <asp:button id="update"
             onClick="UpdateLabel"
             text="Click to update label text"
             runat="server"/>
       </form>
       <asp:label id="Message2" runat="server"/>
    </body>
    </html>
Remarques
En plus d'éliminer le tremblement en cours de navigation ou de réapplication, SmartNavigation conserve la position actuelle du défilement en cas de réapplication d'une page et ne garde qu'une seule page dans l'historique du navigateur, ce qui empêche les utilisateurs de cliquer sur le bouton Retour du navigateur pour récupérer un état antérieur de la page. Même s'il est possible de définir cette propriété à partir du code, il est recommandé de le faire à l'aide de l'attribut SmartNavigation de la directive @ Page, comme l'illustre l'exemple présenté ci-dessus.

Trace |
TraceContext = Page.Trace |
Retourne l'objet TraceContext de la requête web actuelle. Le suivi fournit les détails concernant l'exécution de la requête web. La classe TraceContext classe TraceContextcomprend les éléments suivants:
Elément | Description
--- | ---
IsEnabled | Indique si le suivi de la page actuelle est activé ou non.
TraceMode | Un élément de l'énumération TraceMode qui indique la façon dont les élément devraient être triés. Les valeurs possibles sont les suivantes: SortByCategory et SortByTime . En ce qui concerne la dernière, il s'agit de la valeur par défaut définie dans machine.config .
méthode Warn | Inscrit un message en rouge dans le journal de suivi.
Méthode Write | Inscrit un message dans le journal de suivi.
Paramètres TraceContext Une instance de la classe TraceContext .
Exemple
L'exemple déclenche le suivi par voie logicielle à l'aide de la propriété Trace de la classe Page :
    Sub Page_Load(  )
       If Trace.IsEnabled = True Then
          Message.Text = "Tracing is enabled."
       Else
          Message.Text = "Tracing is not enabled."
       End If
    End Sub
Remarques
Comme dans le cas des propriétés Requête et Réponse, bien qu'il soit possible de récupérer une référence locale à l'instance TraceContext associée à la requête, il est plus fréquent d'accéder à cette instance directement à l'aide de la propriété Trace, comme l'illustre l'exemple présenté ci-dessus. Pour plus de détails concernant le suivi d'application, reportez-vous au chapitre 10.

User |
IPrincipal = Page.User |
Retourne une instance d´un objet qui implémente l'interface IPrincipal contenant des informations de sécurité au sujet de l'utilisateur qui effectue la requête de page. L'interface IPrincipal implémente les éléments suivants:
Elément | Description
--- | ---
Propriété Identity | Retourne l'objet Iidentity représentant l'utilisateur qui réclame la page
Propriété IsInRole | Indique si l'utilisateur qui réclame la page joue un rôle particulier
Paramètres Iprincipal Une variable d'objet qui implémente IPrincipal .
Exemple
Cet exemple obtient le statut d'authentification et le nom de l'utilisateur à l'aide de la propriété User et l'affiche dans le navigateur:
    Sub Page_Load(  )
       Message.Text = "Authenticated: " & _
          User.Identity.IsAuthenticated & "<br/>"
       Message.Text &= "User Name: " & User.Identity.Name
    End Sub
Remarques
Afin de peupler l'objet IPrincipal retourné par la propriété User, il faut prévoir une procédure d'authentification, soit dans machine.config, soit dans web.config, et définir au moins une règle d'authentification qui élimine la possibilité d'une utilisation anonyme. Dans le cas contraire, la propriété IsAuthenticated de l'objet IIdentity renverra la valeur False et la propriété Name renverra une chaîne vide.

ViewState |
StateBag = Page.ViewState |
La propriété ViewState retourne une instance de la classe StateBag qui contient des informations sur l'état des contrôles de serveurs de la page. Cette instance StateBag peut aussi servir à conserver des données arbitraires devant être préservées pour plusieurs requêtes différentes dans la même page.
Paramètres StateBag Un objet de type StateBag qui contient les valeurs de propriété des contrôles de serveurs de la page. Cette instance StateBag peut aussi servir à conserver des données arbitraires devant être préservées pour plusieurs requêtes différentes dans la même page.
Exemple
L'échantillon de code suivant détermine la propriété ForeColor du contrôle Message, puis enregistre la valeur de cette couleur dans l'instance StateBag ViewState. Si la page est réappliquée, le code récupère la couleur enregistrée et, en fonction du nom de la couleur, la fait passer de Red à Black, ou inversement.
    <%@ Page Language="vb" %>
    <html>
       <head>
          <title>ViewState property example</title>
          <script runat="server">
             Sub Page_Load(  )
                Dim LocalColor As System.Drawing.Color
                If IsPostBack Then
                   LocalColor = CType(ViewState("LabelColor"), _
                      System.Drawing.Color)
                   If LocalColor.Name = "Black" Then
                      LocalColor = System.Drawing.Color.Red
                   Else
                      LocalColor = System.Drawing.Color.Black
                   End If
                   Message.ForeColor = LocalColor
                   Message.Text = "Label color is " & LocalColor.Name
                   ViewState("LabelColor") = LocalColor
                Else
                   Message.ForeColor = System.Drawing.Color.Black
                   LocalColor = Message.ForeColor
                   Message.Text = "Label color is " & LocalColor.Name
                   ViewState("LabelColor") = LocalColor
                End If
             End Sub
          </script>
       </head>
    <body>
       <form runat="server">
          <asp:button id="button"
             text="Click to change label color"
             runat="server"/>
          <asp:label id="Message" runat="server"/>
       </form>
    </body>
    </html>
Remarques
En plus d'un outil de gestion automatique de l'état des contrôles de serveurs, ViewState constitue l'endroit idéal pour la gestion de l'état ambiant des pages entre chaque requête. Non seulement la classe StateBag conserve les types de données d'origine comme les nombres entiers et les chaînes, mais elle peut aussi servir à enregistrer les objets, pourvu qu'ils soient sérialisables, comme c'est le cas de la structure Color dans l'exemple ci-joint. Lors de l'enregistrement d'un objet sérialisable dans ViewState, l'état de l'objet est automatiquement numérisé sous une forme susceptible d'être enregistrée dans ViewState et dessérialisé sous forme d'instance d'objet lorsqu'on refait appel à l'objet. Etant donné que ViewState n'enregistre aucune information de type avec l'objet, il faut configurer l'objet récupéré dans ViewState avec le type approprié. Dans notre exemple, le type considéré est System.Drawing.Color. Finalement, réfléchissez bien avant d'enregistrer de gros objets (comme les ensembles de données) dans ViewState. Etant donné que ViewState est conservé en tant que champ masqué, il est envoyé au navigateur avec chaque requête. L'enregistrement de gros objets dans ViewState aura pour effet d'augmenter les temps de chargement des pages.

Controls |
ControlCollection = Page.Controls |
Fournit un accès à l'instance ControlCollection associée à la page, à l'aide de laquelle vous pouvez ajouter ou manipuler les contrôles en cours d'exécution.
Paramètres ControlCollection Un objet du type ControlCollection contenant les contrôles associés à la page.
Exemple
L'exemple de code utilise la propriété Controls pour afficher la propriété Count de l'instance de classe ControlCollection associée à la page. Puis il ajoute un nouveau contrôle Label à la collection et affiche la propriété Count mise à jour à l'aide de la nouvelle étiquette.
    Sub Page_Load(  )
       Message.Text = "There are currently " & Controls.Count & _
          " controls on the page.<br/>"
       Dim Message2 As New Label
       Controls.AddAt(Controls.Count - 1, Message2)
       Message2.Text = "There are now " & Controls.Count & _
          " controls on the page."
    End Sub
Remarques
Comme dans le cas des propriétés Session et Trace, bien qu'il soit possible de récupérer une référence locale à l'instance Controls associée à la page, l'exemple ci-joint montre qu'il est plus fréquent d'accéder à cette instance directement à l'aide de la propriété Controls. Veuillez noter qu'en cas d'ajout d'un contrôle à une page qui en contient déjà , le fait d'utiliser la méthode AddAt de la classe ControlCollection permet un placement plus précis du contrôle qu'avec la méthode Add, qui se contente de placer le contrôle à la fin de la collection. Dans cet exemple, l'utilisation de la méthode Add method aurait pour effet de faire apparaître le contrôle Label supplémentaire après la balise de fin de page </html>, ce qui ne se fait pas en HTML et pourait entraîner des problèmes de présentation dans certains navigateurs.

Validators |
ValidatorCollection = Page.Validators |
Retourne une instance de la classe ValidatorCollection contenant l'ensemble des contrôles de programme de validation existants dans la page sollicitée. Il est possible d'accéder à chacun des contrôles de programme de validation en réitérant la collection ValidatorCollection.
Paramètres ValidatorCollection Une variable d'objet du type ValidatorCollection.
Exemple
L'échantillon de code affiche un contrôle Textbox avec contrôles RequiredFieldValidator et RegularExpressionValidator joints. Dans Page_Load, le code se répète au travers de la variable ValidatorCollection retournée par la propriété Validators et affiche l'ID et la propriété ErrorMessage de chaque programme de validation de la collection:
    <%@ Page Language="vb" %>
    <html>
       <head>
          <title></title>
          <script runat="server">
             Sub Page_Load(  )
                Dim Validator as BaseValidator
                For Each Validator in Validators
                   Message.Text &= Validator.ID & " error message: "
                   Message.Text &= Validator.ErrorMessage & "<br/>"
                Next
             End Sub
          </script>
       </head>
    <body>
       <form runat="server">
          Phone: <asp:textbox id="phone" runat="server"/>
          <asp:requiredfieldvalidator
             id="rfvPhone"
             controltovalidate="phone"
             display="dynamic"
             errormessage="Required!"
             runat="server"/>
          <asp:regularexpressionvalidator
             id="revPhone"
             controltovalidate="phone"
             display="dynamic"
             validationexpression="^[2-9]\d{2}-\d{3}-\d{4}$"
             errormessage="Enter a phone number in the form xxx-xxx-xxxx"
                 runat="server"/>
          <br/>
          <asp:button id="submit" text="Submit" runat="server"/>
       </form>
       <br/>
       <asp:label id="Message" runat="server"/>
    </body>
    </html>
Remarques
Etant donné que seules sont affichées les propriétés des contrôles de programme de validation qui sont hérités du contrôle BaseValidator (duquel provient l'ensemble des contrôles de validation), il n'est pas nécessaire de paramétrer le programme de validation de façon particulière avant d'accéder aux propriétés. Cependant, si l'on veut afficher une propriété qui soit propre au type de programme de validation utilisé (comme la propriété ValidationExpression de la classe RegularExpressionValidator ), il faudra paramétrer le contrôle de façon appropriée. Dans Visual Basic .NET, cela se fait à l'aide du mot clé CType .

DataBind |
Page.DataBind( ) |
Evalue et résoud n´importe quelle expression de liaison de données dans la page. Elle invoque égalementDataBind sur l'ensemble des contrôles enfants.
Paramètres
Aucun
Exemple
L'échantillon de code suivant utilise une expression de liaison de données pour appliquer l'attribut ForeColor d'une balise de contrôle d'étiquette à la valeur de la variable locale dénommée couleur. Quand on invoque la méthode DataBind dans in Page_Load, la valeur de la variable Color est assignée à l'attribut ForeColor (ce qui revient effectivement à définir la propriété ForeColor sous forme de code):
    <%@ Page Language="vb" %>
    <html>
       <head>
          <title></title>
          <script runat="server">
             Dim Color As System.Drawing.Color = System.Drawing.Color.Red
             Sub Page_Load(  )
                Message.Text = "ForeColor is: " & Color.Name
                DataBind(  )
             End Sub
          </script>
       </head>
    <body>
       <asp:label id="Message" ForeColor="<%# Color %>" runat="server"/>
    </body>
    </html>
Remarques
Si vous souhaitez effectuer une liaison de données sur un contrôle spécifique de la page, comme DataGrid ou DataList, il peut s'avérer plus efficace d'invoquer DataBind sur ce contrôle plutôt que sur la page, étant donné que le fait de l'invoquer sur le contrôle évitera d'avoir à se préoccuper d'invoquer DataBind sur des contrôles pour lesquels la liaison de données n'est pas nécessaire.

FindControl |
Control = Page.FindControl(String) |
Retourne une référence à l´objet de contrôle dont le nom correspond à une chaîne de recherche. La méthode FindControl fait partie de la classe Control de base.
Paramètres Contrôle Une instance de la classe Control représentant le contrôle obtenu à l'aide de la méthode FindControl. Ce contrôle doit être formulé avec le type de contrôle approprié afin de sélectionner des éléments spécifiques à ce type de contrôle. String Une chaîne contenant l'identifiant logiciel du contrôle. Cette valeur équivaut à l'attribut ID d'un contrôle déclaratif ou, dans le cas de contrôles créés en cours d'exécution, au nom d'objet du contrôle.
Exemple
L'exemple suivant montre comment trouver un contrôle à l'aide de son ID et changer la couleur d'arrière-plan correspondante:
    Sub Page_Load(  )
       Dim TheControl As Control = FindControl("Message")
       If Not TheControl Is Nothing Then
          Dim TheLabel As Label = CType(TheControl, Label)
          TheLabel.Text = "Found the label named Message!"
          TheLabel.BackColor = System.Drawing.Color.Blue
       End If
    End Sub
Remarques
La méthode FindControl, qui est héritée de la classe Control (dont provient la classe Page ), est utile lors de l'utilisation de contrôles imbriqués ou de contrôles d'utilisateur appelés à manipuler un contrôle dans leur page parent. Par exemple, le code contenu dans un contrôle d'utilisateur pourra invoquer FindControl sur la page contenant le contrôle d'utilisateur pour localiser et manipuler un contrôle contenu dans la page (mais en dehors du contrôle d'utilisateur).

HasControls |
Boolean = Page.HasControls( ) |
Retourne une valeur booléenne qui indique si oui ou non la page contient des contrôles enfants.
Paramètres booléens Une valeur booléenne qui indique si oui ou non la page contient des contrôles enfants.
Exemple
L'échantillon de code affiche un message indiquant si oui ou non la page comporte des contrôles dans sa collection Controls, en fonction de la valeur retournée par HasControls:
    Sub Page_Load(  )
       If Page.HasControls = True Then
          Message.Text = "The page contains controls."
       Else
          Message.Text = "The page does not contain controls."
       End If
    End Sub

LoadControl |
objControl = Page.LoadControl(strPath) |
Retourne une instance du contrôle d'utilisateur défini dans le strPath fichier de contrôle d'utilisateur. Cela permet un chargement dynamique des contrôles d'utilisateur au lieu d'avoir à utiliser la directive @ Register .
Paramètres objControl Un objet de type Control qui représente le contrôle d'utilisateur spécifié dans le chemin indiqué. strPath Le chemin virtuel vers un fichier de contrôle d'utilisateur.
Exemple
L'exemple utilise le LoadControl pour charger un contrôle d'utilisateur en cours d'exécution et l'ajoute à la collection Controls de la page:
    Sub Page_Load(  )
       Dim Hello As UserControl = LoadControl("hello.ascx")
       Page.Controls.Add(Hello)
    End Sub
Le contrôle d'utilisateur hello.ascx a l'aspect suivant:
    <h1>Hello, World!</h1>

MapPath |
String = Page.MapPath(virtualPath) |
Retourne le chemin physique qui correspond à un chemin virtuel donné.
Paramètres String Une chaîne contenant le chemin physique qui correspond à virtualPath. virtualPath Une chaîne contenant un chemin virtuel absolu ou relatif.
Exemple
Dans l'exemple suivant, on relie le chemin virtuel de la page nommée à son chemin physique:
    Sub Page_Load(  )
       Message.Text = MapPath("MapPath.aspx")
    End Sub
Remarques
La méthode Page.MapPath dédouble la fonctionnalité de la méthode Server.MapPath.

ResolveUrl |
String = Page.ResolveUrl(strRelativeUrl) |
Retourne une URL complète correspondant à l'URL relative.
Paramètres String Une chaîne contenant l'URL complète. strRelativeUrl Une URL relative.
Exemple
L'exemple relie l'URL relative actuelle à une URL complète:
    Sub Page_Load(  )
       Message.Text = Page.ResolveUrl("ResolveUrl.aspx")
    End Sub

Validate |
Page.Validate( ) |
Invoque la logique de validation pour chaque contrôle de programme de validation sur la page. Quand cette méthode est invoquée, elle réitère la collection Page object's ValidatorCollection et exécute la logique de validation associée à chaque contrôle de programme de validation.
Exemple
Reportez-vous à l'exemple concernant la propriété IsValid.
Remarques
La méthode Validate est invoquée de façon automatique dès que l'utilisateur clique sur un contrôle HTML ou ASP dont la propriété CausesValidation est True .

Error |
    Sub Page_Error(Sender As Object, e As EventArgs)'error handling code
    End Sub
L´événement Evénement Error se déclenche lorsqu´une exception non traitée se produit sur la page. Si aucun programme de traitement d´événement n´est défini pour cet événement, l´événement Application_Error se déclenche. Si l´exception n´est toujours pas traitée, le contrôle est transféré à la page (ou aux pages) définies dansl´élément <customErrors> élément dans web.config.
Paramètres Sender Un argument contenant des informations concernant l'objet qui a affiché l'événement. e Un objet de type EventArgs contenant des informations supplémentaires concernant l'événement.
Exemple
L'échantillon de code suivant génère délibérément une exception de type overflow, puis la traite dans le programme Page_Error, en affichant de façon temporaire le texte de l'exception:
    Sub Page_Load(  )
       Dim x, y, overflow As Integer
       x = 1
       y = 0
       overflow = x / y
    End Sub

    Sub Page_Error(  )
       Response.Write(Server.GetLastError.ToString(  ))
       Server.ClearError
    End Sub
Remarques
L'exception actuelle est obtenue à l'aide de la méthode GetLastError de la classe Server . Une fois le traitement de votre erreur terminé, vous pouvez soit effacer l'exception en invoquant Server.ClearError, comme dans l'exemple ci-joint, soit permettre à l'exception de gagner le niveau suivant de traitement d'erreur. On observera que les arguments Sender et e sont optionnels pour cet événement, comme dans l'exemple ci-joint. Si l'attribut AutoEventWireup de la directive @ Page a la valeur True (par défaut), ASP.NET invoquera de façon automatique le gestionnaire d'événement correspondant, pourvu qu'il soit doté de la signature Page_Error appropriée.

Init |
    Sub Page_Init(Sender As Object, e As EventArgs)'initialization code
    End Sub
Paramètres Sender Un argument contenant des informations concernant l'objet qui a affiché l'événement. e Un objet de type EventArgs contenant des informations supplémentaires concernant l'événement.
Exemple
L'échantillon de code initialise une variable pour définir la propriété ForeColor d'une étiquette dans Page_Init, puis modifie cette valeur pour définir la propriété ForeColor d'une autre étiquette dans Page_Load:
    <%@ Page Language="vb" %>
    <html>
       <head>
          <title>Init event example</title>
          <script runat="server">
             Dim TheColor As System.Drawing.Color
             Sub Page_Init(  )
                TheColor = System.Drawing.Color.Red
             End Sub
             Sub Page_Load(  )
                Message.ForeColor = TheColor
                Message.Text = "The color of the text was set in Page_Init."
                TheColor = System.Drawing.Color.Blue
                Message2.ForeColor = TheColor
                Message2.Text = "The color of the text was set in Page_Load."
             End Sub
          </script>
       </head>
    <body>
       <asp:label id="Message" runat="server"/>
       <br/>
       <asp:label id="Message2" runat="server"/>
    </body>
    </html>
Remarques
On observera que les arguments Sender et e sont optionnels pour cet événement, comme dans l'exemple ci-joint. Si l'attribut AutoEventWireup de la directive @ Page a la valeur True (par défaut), ASP.NET invoquera de façon automatique le gestionnaire d'événement correspondant, pourvu qu'il soit doté de la signature Page_Init.

Load |
    Sub Page_Load(Sender As Object, e As EventArgs)'code
    End Sub
Déclenché quand la page est chargée. Etant donné que cet événement se déclenche à chaque requête de page, il est possible d'ajouter n'importe quel code d'initialisation devant être exécuté au niveau de la page, y compris l'initialisation des contrôles enfant de la page. Si l'événement Load se déclenche, il est également possible d'accéder aux informations d'état d'affichage de la page. ASP.NET attribue les arguments suivants à l'événement Load: Sender Un argument contenant des informations concernant l'objet qui a affiché l'événement. e Un objet de type EventArgs contenant des informations supplémentaires concernant l'événement.
Exemple
Reportez-vous à l'exemple concernant Init.
Remarques
On observera que les arguments Sender et e sont optionnels pour cet événement, comme dans l'exemple ci-joint. Si l'attribut AutoEventWireup de la directive @ Page a la valeur True (par défaut), ASP.NET invoquera de façon automatique le gestionnaire d'événement correspondant, pourvu qu'il soit doté de la signature Page_Load appropriée.

Unload |
    Sub Page_Unload(Sender As Object, e As EventArgs)'cleanup code
    End Sub
Déclenché la page est chargée à partir de la mémoire. Etant donné que cet événement se déclenche avant le chargement de la page, il est possible d'effectuer les opérations de nettoyage telles que la fermeture des fichiers ouverts et les connexions à la base de données. ASP.NET attribue les arguments suivants à l'événement Unload: Sender Un argument contenant des informations concernant l'objet qui a affiché l'événement. e Un objet de type EventArgs contenant des informations supplémentaires concernant l'événement.
Exemple
Cet exemple montre l'effet de l'événement Unload en refermant un fichier affiché dans le gestionnaire d'événement Page_Load:
    Dim TheFile As System.IO.StreamReader
    Sub Page_Load(  )
       TheFile = System.IO.File.OpenText(MapPath("Init.aspx"))
       Message.Text = "<pre>" & _
          Server.HtmlEncode(TheFile.ReadToEnd(  )) & "</pre>"
    End Sub

    Sub Page_Unload(  )
       TheFile.Close(  )
    End Sub
Remarques
Alors que l'événement Unload est utile pour effectuer des tâches de nettoyage au niveau des pages, en ce qui concerne les ressources de type bases de données, pour lesquelles il se peut qu'une exception interrompe le flux normal de traitement des pages, il peut s'avérer préférable de placer le code de nettoyage de cette ressource dans le bloc Finally d'une instruction Try...Catch...Finally, ce qui garantira l'exécution systématique du code de nettoyage. Pour plus de détaisl concernant Try...Catch...Finally, reportez-vous au chapitre 10. On observera sur cet exemple que les arguments Sender et e sont optionnels dans le cas de cet événement. Si l'attribut AutoEventWireup de la directive @ Page a la valeur True (par défaut), ASP.NET invoquera de façon automatique le gestionnaire d'événement correspondant, pourvu qu'il soit doté de Page_Unload.