2010-07-23 5 views
1

Est-ce que quelqu'un peut m'expliquer les règles autour de ce qui peut et ne peut pas être évalué/inséré dans le balisage en utilisant les balises <% #%> et <% =%> dans asp.net?ASP.Net <%# %> et <%= %> règles?

Lorsque j'ai découvert pour la première fois que je pouvais injecter des variables codées dans le balisage en utilisant <% = je pensais 'génial'. Ensuite, j'ai découvert que si ces balises sont présentes, vous ne pouvez pas ajouter à la collection de contrôles de la page (c'est une toute autre question!). Mais <% # tags sont ok.

Y a-t-il un moyen d'injecter une évaluation de variable ou de fonction code-behind dans la page en utilisant <% #? Merci.

Répondre

1

L'étiquette en ligne <%# est utilisé pour la liaison de données, donc si vous voulez utiliser un code-behind variable à l'intérieur, vous devrez lier la page ou contrôler la variable réside dans:

Page.DataBind(); 

Vous peut inclure cette instruction dans l'événement Page_Load ou Page_PreRender.

Voir this article pour plus d'informations sur l'utilisation des tags inline dans ASP.Net et this article pour plus d'informations sur la liaison de données côté serveur.

+0

Salut, merci pour votre réponse. A travaillé un régal! Je vais lire les articles quand j'ai un peu plus de temps libre! –

2

<%%> sont des blocs de code. Vous pouvez y mettre n'importe quel code de serveur. Ceci est un raccourci pour <script runat="server"></script>.

<%=%> est pour sortir des chaînes. Ceci est un raccourci pour <script runat="server">Response.Write()</script>.

Voir here pour plus de détails sur <%%> et <%=%>.

<%#%> sont utilisés pour data binding expressions.

Voir la index page pour la syntaxe asp.net Page.

+0

Merci. Infos utiles mais j'ai peur que Prutswonder ait résolu mon problème :) –