ASP.NET et les Scriptlet

Publié le 04 juillet 2008 par Dave Lizotte

Vous débuter en ASP.NET ? Peut-être pas, mais sinon, connaissez-vous l'existance des scriptlet sous ASP.NET ? En effet, ASP.NET offre la possibilité d'insérer du code serveur à l'intérieur même de vos pages .aspx. Bref, un exemple vaut mille fois ce que j'essai de vous expliquez.

Default.aspx

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
   <head>
      <title></title>
   </head>
   <body>     
      <span>Nous sommes le : <%=DateTime.Now.ToShortDateString() %></span>
   </body>
</html>
Si vous avez bien saisie, les scriptlets sont représenté par les tags <% %>. Il existe plusieurs type de scriptlet.

  • Scriptlet d'instructions <% instruction %>
  • Scriptlet d'expressions systèmatiques <%= expression %>
  • Scriptlet d'expressions liées <%# expression %>
  • Scriptlet d'expressions analysées <%$ expression %>

Les Scriptlet d'inscructions

Ils sont délimités par les marqueurs <% instruction %>. Cette portion de code permet d'éxecuter des instructions dans leur ordre d'appartion dans la page. Elles sont exécutées lors du rendu de la page. Elles permettent d'imbriquer facilement des instructions dans le code html.

Exemple :

<% If (DateTime.Now.DayOfWeek = DayOfWeek.Saturday Or DateTime.Now.DayOfWeek = DayOfWeek.Sunday) Then %>
<div class="FDS">Bonne fin de semaine!</div>
<% Else %>
<div class="JOB">Aller, au boulôt!</div>
<% End If %>

Les Scriptlet d'expressions liées

Ils sont délimités par les marqueurs <%#expression %>. Cette portion de code permet d'évaluer une expression lorsque la méthode de page ou de contrôle databinding() est appelée.

Exemple :


Code « client »
<div>Nous somme le :<asp:Label runat="server" Text="<%#DateAuj %>" ID="LBLDateNow" /></div> Code « serveur »
Protected ReadOnly Property DateAuj() As String
   Get
      Return String.Format("{0}", DateTime.Now.ToShortDateString())
   End Get
End Property
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
   If Not IsPostBack Then
      LBLDateNow.DataBind()
      ' Vous pouvez aussi utiliser :
      ' Page.Databind()
   End If
End Sub

Scriptlet d'expressions systèmatiques

Ils sont délimités par les marqueurs <%=expression %>. Cette portion de code permet d'évaluer une expression lorsqu'elle apparait dans la page, dans le contexte d'exécution. Il peut s'agir de valeurs littérales, de variables, ou d'appels de méthodes.

Exemple :

<div>Nous sommes le : <%=DateTime.Now.ToShortDateString() %></div>


Scriptlet d'expressions analysées

Ils sont délimités par les marqueurs <$=expression %>. Cette portion de code permet d'analyser une expression à la compilation de la page.Ces expressions conviennent bien aux accès aux bases de données par exemple et son evaluées au moment du databind().
En ASP.NET, il existe 3 types d'expressions :

  • ConnectionString : Provient de la section ConnectionStrings du web.config
  • AppSettings : Provient de la section AppSettings du web.config
  • Resources : Provient d'une fichier de ressources

Exemple :

Page.aspx
<asp:Label runat="server" Text="<%$AppSettings:version%>" ID="Version"/>
Web.config
<appSettings>
  <add key="version" value="1.0 alpha"/>
</appSettings>