2009-07-27 7 views
7

Je suis très nouveau à ASP.NET et, après avoir battu ma tête sur a few problems, je me demande si je fais des choses mal (j'ai la mauvaise habitude de le faire). Je suis intéressé à apprendre comment fonctionne ASP.NET.Où devrait-on faire dans une page ASP.NET?

Ma question est la suivante: Où puis-je trouver de la documentation pour me guider dans le choix du traitement?

Comme quelques exemples précis (je suis intéressé par les réponses à ces questions, mais je préfère être pointés une ressource qui donne des réponses plus générales):

  • Quel traitement dois-je faire en Page_Load?
  • Quel traitement dois-je faire avec l'événement Load?
  • Qu'est-ce que peut je fais dans Page_Unload?
  • Dans quel ordre les choses se font-elles?
  • Quand chaque événement est-il déclenché?
  • Quel est le cycle de vie de la page?

modifier: this question peut aussi être utile pour certaines personnes.

+2

Le cycle de vie de la page ASP.Net revendique une autre victime. – womp

+0

Quoi? Suis-je maintenant condamné à devenir accro ou quelque chose? '' – BCS

+0

Non, juste non productif. :-) –

Répondre

4

Voici quelques bons liens pour vous aider à démarrer. Comprendre comment le cycle de vie ASP.NET s'intègre est essentiel pour comprendre comment votre code va interagir avec lui.

ASP.NET Page Life Cycle Overview:

Lorsqu'un exécute page ASP.NET, la page passe par un cycle de vie dans lequel il effectue une série d'étapes de traitement. Celles-ci incluent l'initialisation, instanciant les contrôles, la restauration et l'état de maintenance, l'exécution de l'événement le code du gestionnaire et le rendu. Il est important que vous compreniez le cycle de vie de la page afin que vous puissiez écrire le code à l'étape de cycle de vie appropriée pour l'effet souhaité. De plus, si vous développez personnalisés contrôles, vous devez être familiarisé avec le cycle de vie de page afin de initialiser correctement les contrôles, POPULATE propriétés de contrôle avec données d'état d'affichage et exécuter un code de comportement contrôle . (Le cycle de vie d'un contrôle est basé sur le cycle de vie de la page , mais la page déclenche plus d'événements pour un contrôle que ceux disponibles pour une seule page ASP.NET.)

The ASP.NET Page Life Cycle:

Lorsqu'une demande de page est envoyée au serveur Web , que ce soit par une soumission ou changement d'emplacement, la page est exécutée par une série d'événements au cours de sa création et élimination. Lorsque nous essayons de construire des pages ASP.NET et que ce cycle d'exécution n'est pas pris en compte, nous peut causer beaucoup de maux de tête pour nous-mêmes. Cependant, quand il est utilisé et manipulé correctement, le cycle d'exécution d'une page peut être un outil efficace et performant . Beaucoup de développeurs sont réaliser que comprendre ce que se passe et quand il arrive est crucial pour écrire efficacement les pages ASP.NET ou les contrôles de l'utilisateur. Examinons donc dans les dix événements d'une page ASP.NET , de la création à la mise au rebut. Nous verra également comment puiser dans ces événements pour implanter notre propre code personnalisé.

+0

Ces deux liens semblent utiles. Merci. – BCS

5

La première chose que vous devez apprendre pour comprendre les questions que vous venez de poser est: PAGE CYCLE DE VIE. C'est une chienne parfois, surtout la partie ViewState.

• Quel traitement dois-je effectuer dans Page_Load?

• Quel traitement dois-je effectuer avec l'événement Load? = Page_load

• Que puis-je faire dans Page_Unload? Nettoyage

• Dans quel ordre les choses se font-elles? CYCLE DE VIE PAGE

• Quand chaque événement est-il déclenché? CYCLE DE VIE PAGE

• Quel est le cycle de vie de la page? alt text http://www.eggheadcafe.com/articles/o_aspNet_Page_LifeCycle.jpg

Edit: Source de l'image: http://www.eggheadcafe.com/articles/20051227.asp

Plus d'infos: http://www.codeproject.com/KB/aspnet/PageLifeCycle.aspx

+0

Avez-vous un lien vers l'endroit d'où provient cette image? Ça ne va pas être très bien sans quelques explications. – BCS

+1

Pas aussi chiant que de câbler des gestionnaires d'événements à des objets créés dynamiquement;) – BenAlabaster

+0

Malheureusement, ce lien ne fournit pas beaucoup de contexte. – BCS

5

Les liens affichés par divers gens sont très utiles en effet - le cycle de vie de page ASP.NET est vraiment pas toujours facile à grok et maître! Sur un petit conseil - je recommande de préférer les méthodes surchargées aux méthodes attachées "magiquement", par ex. préfèrent la

protected override void OnLoad(EventArgs e) 

sur la

protected void Page_Load(object sender, EventArgs e) 

Pourquoi?Simple: dans les méthodes surchargées, vous pouvez vous indiquer si et lorsque la méthode de base sera appelée:

protected override void OnLoad(EventArgs e) 
{ 
    base.OnLoad(e); 
    // your stuff 
} 

ou:

protected override void OnLoad(EventArgs e) 
{ 
    // your stuff 
    base.OnLoad(e); 
} 

ou même:

protected override void OnLoad(EventArgs e) 
{ 
    // some of your stuff 
    base.OnLoad(e); 
    // the rest of your stuff 
} 

ou même:

protected override void OnLoad(EventArgs e) 
{ 
    // your stuff 
    // not call the base.OnLoad at all 
} 

Vous n'avez pas cette flexibilité dans la version Page_Load().

Marc

2

Je vous conseille vivement de lire ceci:

http://www.west-wind.com/presentations/howaspnetworks/howaspnetworks.asp

Si vous êtes nouveau, vous asp.net aurez du mal à obtenir un peu de tout cela, mais vraiment, je Vous n'avez pas encore trouvé un document aussi détaillé sur le sujet venant de la documentation de MS ou de tout blog employé de ms.

Je l'ai fait à la dure et j'ai suivi tous les chemins possibles en utilisant du code désassemblé mais ce mec a vraiment pris le temps de l'écrire.

+0

Qu'une lecture cool et vaut le temps. +1 Cependant, il s'arrête juste au-dessous du point que je suis intéressé à apprendre (c'est * à * niveau bas) – BCS

+0

Désolé BCS, vous avez absolument raison à ce sujet. – user134706

-1

Essentiellement essayer et le faire dans Page_Load et si cela ne fonctionne pas, essayez-le soit Page_Init ou Page_Render. Normalement, l'un d'entre eux fonctionne :) C'est l'approche scientifique.

+0

Pour la personne qui m'a voté - c'était censé être une blague, idiot! –

+1

Et comme une blague, il ne devrait pas être proche du sommet des réponses. – BCS

Questions connexes