La page ASP.NET Web Form est un fichier texte déclaratif avec une extension .aspx. En plus du contenu statique, vous pouvez marquer des éléments à l'aide de huit syntaxes différentes. Cette section passe en revue ces éléments de syntaxe et fournit quelques exemples de la façon de les utiliser.
Syntaxe de rendu du code : <% %> et <%= %>
Les blocs de rendu de code sont représentés par des éléments <% ... %>, qui permettent de contrôler le contenu rendu et sont exécutés lors de la phase d'affichage de la page Web Forms. exécution. L'exemple suivant montre comment les utiliser pour parcourir le contenu HTML.
<%@ Langue de la page="VB" %>
<html>
<corps>
<% Dim I sous forme d'entier
Pour I = 0 à 7 %>
<font size="<%=I%>"> Bonjour tout le monde </font> <br>
<%Suivant %>
</corps>
</html>
<% ... %> est uniquement exécuté, tandis que l'expression contenant le signe égal (<%= ... %>) calculera le résultat lorsque le contenu sera affiché. Par conséquent, <%="Hello World" %> affiche le même résultat que le code C# <% Response.Write("Hello World" %>).
Notez que puisque le langage nécessite l'utilisation de marqueurs pour terminer ou séparer les instructions (comme le point-virgule ; en C#), il est important de placer ces marqueurs correctement.
Le code C#
<% Response.Write("Hello World" %> nécessite un point-virgule pour terminer l'instruction.
<%="Hello World"; %> Erreur : provoque "Response.Write("Hello World";);".
<%="Hello World" %> Aucun point-virgule n'est requis.
Syntaxe de déclaration de code : <script runat="server">
Le bloc de déclaration de code définit les variables membres et les méthodes qui seront compilées dans la classe Page. Ces blocs peuvent être utilisés pour créer une logique de page et de navigation. L'exemple suivant montre comment définir la méthode Subtract dans le bloc <script runat="server"> puis l'appeler dans la page.
<html>
<langage de script="VB" runat=serveur>
Fonction Soustraire (Num1 sous forme entière, Num2 sous forme entière) sous forme entière
Retourner Numéro1-Num2
Fonction de fin
</script>
<corps>
<%
Nombre Dim sous forme d'entier = 100
Faire pendant que nombre > 0
Response.Write("Valeur : " & Numéro & "<br>")
Nombre = Soustraire (Nombre, 1)
Boucle
%>
</corps>
</html>
Veuillez noter : contrairement à ASP - dans ASP, les fonctions doivent être définies dans le bloc <% %> - toutes les fonctions et variables globales doivent être définies à l'aide de la balise <script runat=server>. La déclaration de fonction dans le bloc <% %> affichera un message d'erreur de compilation de syntaxe.
Syntaxe du contrôle serveur
Les contrôles serveur ASP.NET personnalisés permettent aux développeurs de pages de générer dynamiquement des interfaces utilisateur HTML et de répondre aux demandes des clients. Ils sont exprimés dans des fichiers utilisant une syntaxe déclarative basée sur le balisage. Ces balises diffèrent des autres balises en ce sens qu'elles contiennent un attribut "runat=server". L'exemple suivant montre comment utiliser le contrôle serveur <asp:label runat="server"> dans une page ASP.NET. Ce contrôle correspond à la classe Label dans l'espace de noms System.Web.UI.WebControls.
En ajoutant une balise avec l'ID "Message", une instance Label peut être créée au moment de l'exécution :
<asp:label id="Message" font-size=24 runat="server"/>
Nous pouvons utiliser ce nom pour accéder au contrôle . Le code suivant définit la propriété Text du contrôle.
Message.Text = "Bienvenue dans ASP.NET"
<html>
<langage de script="VB" runat=serveur>
Sub Page_Load (Expéditeur en tant qu'objet, E en tant qu'EventArgs)
Message.Text = "Bienvenue dans ASP.NET"
Fin du sous-marin
</script>
<corps>
<asp:label id="Message" font-size=24 runat=server/>
</corps>
</html>
Syntaxe du contrôle du serveur HTML
Le contrôle du serveur HTML permet aux développeurs d'exploiter par programmation les éléments HTML de la page. La balise de contrôle du serveur HTML est différente de l'élément HTML client dans la mesure où elle possède l'attribut « runat=server ». L’exemple suivant montre comment utiliser le contrôle serveur HTML <span runat=server> dans une page ASP.NET.
<html>
<langage de script="VB" runat=serveur>
Sub Page_Load (Expéditeur en tant qu'objet, E en tant qu'EventArgs)
Message.InnerHtml = "Bienvenue dans ASP.NET"
Fin du sous-marin
</script>
<corps>
<span id="Message" style="font-size:24" runat=server/>
</corps>
</html>
Syntaxe de liaison de données : <%# %>
La prise en charge intégrée d'ASP.NET pour la liaison de données permet aux développeurs de pages de lier hiérarchiquement les propriétés de contrôle aux valeurs du conteneur de données. Le code du bloc de code <%# %> n'est exécuté que lorsque la méthode DataBind de son conteneur de contrôle parent est appelée. L’exemple suivant montre comment utiliser la syntaxe de liaison de données dans le contrôle <asp:datalist runat=server>.
Dans cette liste de données, chaque élément se voit attribuer un modèle. Le contenu du modèle d'élément est spécifié à l'aide d'une expression de liaison de données et Container.DataItem pointe vers la source de données utilisée par la liste de données MyList.
<asp:datalist id="MaListe" runat=server>
<Modèle d'élément>
Voici une valeur : <%# Container.DataItem %>
</Modèle d'élément>
</asp:datalist>
Dans ce cas, la source de données du contrôle MyList est définie par programme, puis la méthode DataBind() est appelée.
L'appel de la méthode DataBind d'un contrôle déclenchera une arborescence récursive (en commençant par le contrôle jusqu'aux contrôles inférieurs de l'arborescence) ; l'événement DataBinding de chaque contrôle serveur de la hiérarchie sera déclenché et l'expression de liaison de données dans les valeurs du contrôle sont calculés en conséquence. Par conséquent, si la méthode DataBind de la page est appelée, chaque expression de liaison de données de la page sera appelée.
<html>
<langage de script="VB" runat=serveur>
Sub Page_Load (Expéditeur en tant qu'objet, E en tant qu'EventArgs)
Dim les éléments en tant que nouvelle liste de tableaux
Articles.Add("Un")
Items.Add("Deux")
Items.Add("Trois")
MaListe.DataSource = Éléments
MaListe.DataBind()
Fin du sous-titre
</script>
<corps>
<asp:datalist id="MaListe" runat=server>
<Modèle d'élément>
Voici une valeur : <%# Container.DataItem %>
</Modèle d'élément>
</asp:liste de données>
</corps>
</html>
ASP.NET 2.0 inclut également une nouvelle syntaxe de liaison de données simplifiée, qui permet aux contrôles de se lier automatiquement aux contrôles de source de données sans avoir à appeler DataBind() dans le code de la page. Cette syntaxe est abordée dans le chapitre « Exécution de l'accès aux données ».
Syntaxe de la balise d'objet : <object runat="server" />
La balise d'objet permet aux développeurs de pages d'utiliser une syntaxe déclarative basée sur des balises pour déclarer et créer des instances de variable. L'exemple suivant montre comment utiliser la notation objet pour créer une instance de la classe ArrayList.
Cet objet est automatiquement créé au moment de l'exécution et est accessible via l'ID "items".
<html>
<langage de script="VB" runat=serveur>
Sub Page_Load (ByVal Sender en tant qu'objet, ByVal E en tant qu'EventArgs)
ArrayItems.Add("Un")
ArrayItems.Add("Deux")
ArrayItems.Add("Trois")
MaListe.DataSource = ArrayItems
MaListe.DataBind()
Fin du sous-marin
</script>
<corps>
<object id="ArrayItems" class="System.Collections.ArrayList" runat=server/>
<asp:datalist id="MaListe" runat=server>
<Modèle d'élément>
Voici une valeur : <%# Container.DataItem %>
</Modèle d'élément>
</asp:liste de données>
</corps>
</html>
Syntaxe des commentaires côté serveur : <%-- Commentaire --%>
Les commentaires côté serveur permettent aux développeurs de pages d'empêcher l'exécution et le rendu du code serveur (y compris les contrôles serveur) et du contenu statique. L'exemple suivant montre comment empêcher l'exécution et l'envoi de contenu au client. Veuillez noter que toutes les informations entre <%-- et --%> seront filtrées et ne seront visibles que dans le fichier serveur d'origine, même s'il contient d'autres directives ASP.NET.
<html>
<corps>
Le contenu ci-dessous a été masqué aux clients du navigateur à l'aide d'un commentaire côté serveur
(consultez la source .aspx pour voir ce que nous voulons dire :-)
<%--
<asp:calendar id="MyCal" runat=server/>
<% Pour I = 0 à 44 %>
Bonjour tout le monde <br>
<%Suivant %>
--%>
</corps>
</html>
Syntaxe d'inclusion de fichiers côté serveur : <-- #Include File="Locaton.inc" -->
L'inclusion de fichiers côté serveur (#Include) permet aux développeurs d'insérer le contenu d'un fichier spécifique n'importe où sur l'ASP. Page NET. L'exemple suivant montre comment insérer des titres et des pieds de page personnalisés dans une page.
<html>
<corps>
<!-- #Include File="En-tête.inc" -->
<br />
<h3> Contenu de la page principale </h3>
<br />
<!-- #Include File="Footer.inc" -->
</corps>
</html>
Syntaxe d'expression : <%$ ... %>Nouvelles fonctionnalités de la version 2.0
ASP.NET 2.0 ajoute une nouvelle syntaxe d'expression déclarative pour la substitution de valeur avant l'analyse de la page. C'est très utile lorsque nous devons remplacer la valeur de la propriété de contrôle du serveur par la valeur de la chaîne de connexion ou le paramètre d'application dans le fichier Web.config. Il peut également être utilisé pour remplacer des valeurs dans les fichiers de ressources lors de la localisation.
<asp:SqlDataSource ID="SqlDataSource1" ConnectionString='<%$ connectionStrings:Pubs %>' runat="server" SelectCommand="sp_GetAuthors" />
<asp:Label ID="Label1" Text='<%$ Ressources : ExchRate, ConvertLabel %>' runat="server"/>