Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Actualités

  • Blog de Cyril DURAND, passionné de JavaScript, Ajax, ASP.net et tout ce qui touche au developpement Web Client-Side.

    View Cyril Durand's profile on LinkedIn

    hit counters

Quizz ASP.net : code inline et ASP.net

Pour changer des précédents quizz JavaScript voici un quizz ASP.net :

Que nous affiche ce code ?

<%@ Page Language="C#" AutoEventWireup="true" %> <script runat="server" type="text/C#"> private String temp = "temp"; void Page_PreInit(object sender, EventArgs e) { temp = "preinit"; } void Page_Init(object sender, EventArgs e) { temp = "init"; } void Page_InitComplete(object sender, EventArgs e) { temp = "initcomplete"; } void Page_PreLoad(object sender, EventArgs e) { temp = "preload"; } void Page_Load(object sender, EventArgs e) { temp = "load"; } void Page_LoadComplete(object sender, EventArgs e) { temp = "loadComplete"; } void Page_PreRender(object sender, EventArgs e) { temp = "prerender"; } void Page_PreRenderComplete(object sender, EventArgs e) { temp = "prerenderComplete"; } </script> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <%=temp%> </div> </form> </body> </html>

Question subsidiaire : Comment ASP.net fait pour afficher ce code :

<% if (true) { %> <asp:label runat="server" Text="C'est vrai !!" /> <% } else { %> <asp:label runat="server" Text="C'est faux !!" /> <%} %>
Posted: mardi 28 août 2007 23:03 par cyril
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

Danuz a dit :

Il va afficher prerenderComplete. (C'est le dernier event à être appelé si j'ai bonne mémoire). :p^

Pour la question subsidiaire, tu veux savoir quoi exactement ?! :p

# août 28, 2007 23:22

cyril a dit :

pour la question subsidiaire j'aimerais comment qu'on m'explique comment ASP.net fais pour compiler la page. Car n'oublions pas que les pages ASP.net (sauf les noncompiledpage) sont compilé avant d'être executé.

# août 28, 2007 23:33

FREMYCOMPANY a dit :

Selon moi, mais c'est sans aucune certitude, le texte affiché doit correspondre au momment ou les données sont envoiées à la compilation pour des cas commme (asp:ctrl runnat="server" att="(%=true%)" /). Ce qui fait que j'hésite entre "LoadComplete" et "PreRender".

Pour ce qui est de la compilation du code, j'opterais, mais sans grande certitude, pour un

IF TRUE THEN : TheASP1.Visible=True : TheASP2.Visible=False

ELSE : TheASP1.Visible=False : TheASP2.Visible=True

END IF

Conclusion : Je suis plus fort en JavaScript qu'en ASP.NET Wink

# août 29, 2007 09:19

simon ferquel a dit :

Le modèle de compilation d'ASP.Net se déroule en 3 étapes:

1 : A partir du markup, une partial class est générée (ca génère seulement des champs protected pour les différents contrôles auxquels on a affecté un ID).

2 : Cette partial class est mergée avec le code behind (et il me semble aussi avec la balise

<script runat="server"><![CDATA[... ]]></script>

<script runat="server" />

<asp:label runat="server" Text="C'est vrai !!" />

<asp:label runat="server" Text="C'est faux !!" />

# août 29, 2007 10:23

simon ferquel a dit :

Houla, mon précédent commentaire foire ^^(visiblement Community Server n'aime pas les longs commentaires avec du code ASP.Net dedans)

# août 29, 2007 11:37

Tukkkko a dit :

ASP.NET affiche PreRenderComplete, qui dis "mieux"??? attention, là commence la difficulté...

# août 30, 2007 00:37

simon ferquel a dit :

Bon, je vais pas reprendre les explications, mais je dirais que le code pète une exception (j'ai juste un doute, parce que le code CS n'est pas dans un fichier de Code Behind) à cause du model de compilation d'ASP.Net.

Pour la question subsidiare, il suffit de savoir comment fonctionne le compilateur ASP.Net : à l'endroit ou il trouve un tag runat="server", il crée un contrôle et le rajoute à la collection de contrôles de son conteneur.

en gros le code C# généré doit être :

if(true)

  this.Controls.Add(new Label("c'est vrai!!"));

else

  this.Controls.Add(new Label("c'est faux!!"));

Comme les contrôles n'ont pas d'ID, le compilo ne génère pas de variable membre pour la manipulation en code behind.

# août 31, 2007 09:42
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- SharePoint 2007 : Nouvelle version du Stramit SharePoint 2007 Caml Viewer sur Codeplex par Philippe Sentenac [MVP SharePoint] le il y a 2 heures et 1 minutes

- ASP.NET AJAX 4.0 par Le blog technique de Loïc Bar le il y a 2 heures et 6 minutes

- [WPF] Comment déclencher un évènement sur un contrôle ? par Thomas Lebrun le il y a 3 heures et 37 minutes

- [Expression Web] Astuce de la Semaine : Utilisation et Configuration des Extraits de Code par Chronos, Blog d'un Intégrateur .NET le il y a 18 heures et 56 minutes

- Faire de l'AJAX sans restrictions de domaine par Kévin Gosse le il y a 21 heures et 25 minutes

- [IronPython] : IronPython & Silverlight 2 - Part II par Kim's Blog le 07-22-2008, 14:50

- [WPF] Des requêtes NDepend pour analyser vos projets WPF par Thomas Lebrun le 07-21-2008, 09:27

- Liste de jeux pour Silverlight par Pierrick's Blog le 07-20-2008, 14:37

- T_PAAMAYIM_NEKUDOTAYIM par MadMatt le 07-19-2008, 16:16

- Et je mets le son.... par Pierrick's Blog le 07-19-2008, 12:09