2009-01-06 11 views
3

Je voudrais savoir dans quelle phase du cycle de vie de l'exécution du contrôle est le "code côté serveur écrit dans le fichier aspx" en cours d'exécution?Server-Side-Code dans le fichier aspx

Est-ce avant SaveState ou après, je prétends qu'il est dans la phase de rendu, est-ce vrai?

dans le fichier ASPX si mon code ECRIT comme

"<%"

if(true) 
{ 
rdlistAnswers.Items.Clear(); 
foreach (string item in myCollection) 
{ 
    i.Value = item; 
    i.Text = item; 
    rdlistAnswers.Items.Add(i); 
} 
"%>" 
<asp:RadioButtonList ID="rdlistAnswers" runat="server"</asp:RadioButtonList> 

les modifications apportées au sont rendus, mais pas enregistrés. mais quand écrire la balise comme

<asp:RadioButtonList ID="rdlistAnswers" runat="server" OnPreRender="loadMe"</asp:RadioButtonList> 

-comme loadMe est une méthode de gestionnaire d'événements dans le fichier aspx.cs fait la même chose que le code ci-dessus les changements sont rendus et enregistrés, quand je fais des changements dans PreRender phase l'état est sauvegardé mais quand je le fais en plaçant la logique dans le fichier aspx n'est pas sauvé, cela signifie - au moins comme je le dis - que le code côté serveur placé dans le fichier aspx s'exécute en phase de rendu, êtes-vous d'accord? ??

Répondre

5

Le code écrit directement dans le fichier aspx sera exécuté à la fin de Render Control dans le cycle de vie de la page ASP.NET. J'ai testé precompiling an aspx file et using Reflector to look at the decompiled code.

+0

Ok, j'ai remarqué que quand je trace mon code, mais pour POC je serching pour un article explique le cycle d'exécution de code dans asp.net, n'en avez-vous pas vu ?? – netseng

+0

Eh bien, il y a l'article MSDN: http://msdn.microsoft.com/en-us/library/ms178472.aspx et Best Practices ici: http://www.aspfree.com/c/a/ASP.NET /ASP.NET-Life-Cycle-and-Best-Practices/ et un autre ici: http://www.15seconds.com/issue/020102.htm – splattne