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

sspizer Messages postés 38 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 23 février 2009 - 27 janv. 2009 à 10:50
watabou Messages postés 9 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 15 juillet 2009 - 16 juil. 2009 à 23:53
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

GillouXman Messages postés 561 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 10 juin 2010
27 janv. 2009 à 10:59
<% %> 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, ...)
0
watabou Messages postés 9 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 15 juillet 2009
16 juil. 2009 à 23:32
The answers with links to msdn and examples are here :

Blog Itelios : Inline Tags

Bastien Besson
0
watabou Messages postés 9 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 15 juillet 2009
16 juil. 2009 à 23:53
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
0