Différence entre <%, <%=, <%#

Signaler
Messages postés
38
Date d'inscription
mercredi 4 juillet 2007
Statut
Membre
Dernière intervention
23 février 2009
-
Messages postés
9
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
15 juillet 2009
-
Bonjour,
J'aimerai bien savoir une bonne fois pour toute ce qu'est l'exacte différence dans une page .aspx entre
<% %>, <%= %>, <%# %>

Merci d'avance.

3 réponses

Messages postés
561
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
10 juin 2010

<% %> pour inclure du code

<% if (User.IsInRole("admin")) { %>
  blabla
<% } else { %>
  blabla
<%} %>

<%=  ça revient à faire un Response.write

<%# pour binder des expressions (Eval, Bind), souvent utililsé dans des data controls (repeater, datagrid, ...)
Messages postés
9
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
15 juillet 2009

The answers with links to msdn and examples are here :

Blog Itelios : Inline Tags

Bastien Besson
Messages postés
9
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
15 juillet 2009

Bon notre blog étant en brésilien pour ce post, je vais faire la traduc quand meme ^^ :

<% ... %>
Le code mis a l'intérieur de ces tags est du code coté "serveur" qui sera exécuté pendant le Page_Render() . On peut ici placer du code qui exécutera des lignes de code et des fonctions propre à la page courante.
Exemple :
<% for(int i = 0; i < 6; i++) %>
<% { Response.Write("
" + i.ToString()); }%>

<%# … %>
tags pour le Data-binding, utilisant les fonctions Eval et Bind( Eval : read-only / One way binding || Bind : two-way binding / modificable par le client).
On peut aussi exécuter n'importe quel code de la page courante, sachant que cette fois ci ce code sera exécuté au Page_DataBind() ( Après le Onload / Avant le PreRender ).
Ptite remarque ; Pour les Ctrl GridViex / DetailsViews. Formviews .. ces expressions sont résolu automatiquement duranr le Prerender et n'ont pas besoin d'appel explicite a la fction Databind().

Exemple :

2:
3: <%# Eval("MeetingName") %>
4:
5:

<%= … %> || Response.Write()
La valeur écrit entre ces lignes est écrite sur la page. Code exécuter avant le OnLoad().
Similaire au Response.write(). Ces tags la ne doivent pas te servir souvent normalement.
Exemple :
1: The Date is now <%= DateTime.Now.ToShortDateString() %>
2: The value of string1 is <%= string1 %>

<%$ … %>
le $ indique a ASP.NET qu'une expression va suivre. Typiquement on aura ici un 'AppSetting', 'ConnectionStrings', ou une 'Resources'.
Example :
1: "
3: SelectCommand="SELECT * FROM [table]" />



Bastien Besson