2009-09-01 6 views

Répondre

0

Si vous voulez se passer l'événement à ne pas se produire dans subsequest postbacks vous devez écrire du code dans

if (!IsPostBack) 
{ 
} 
5

Je ne suis pas particulièrement « chaud » sur les événements ASP.NET, mais ne pensez-vous pas s'il y avait une meilleure approche (dans le modèle ASP.NET normal) que l'habituel "if (!Postback) "un, tout le monde l'utiliserait déjà?

Je pense qu'il peut y avoir certains manière astucieuse de l'éviter, mais seulement comme code "intelligent" qui le rendra plus difficile à maintenir.

Une déclaration if unique est pas exactement ... horrible

(Je ne suis pas un grand fan du modèle ASP.NET pour commencer, il est vrai ... mais si vous êtes déjà dans ce modèle, il ya pire à gérer que cela.)

0

Non, vous ne pouvez pas, car le Web est sans état et chaque page ASP.NET doit donc être chargée chaque fois qu'elle est demandée.

1

Celui-ci est appelé une seule fois:

protected void Application_Start() 

Google "global.asax" pour plus d'informations.

+0

OP n'a pas mentionné le cycle de vie d'une page ou d'une application, mais jetez un oeil à la description du sujet. Il/elle parle de page_load() et IsPostBack (PostBack). – adatapost

+1

Je voulais juste souligner l'importance de la qualité des questions. :) –

0

Il n'existe aucun événement/méthode de ce type permettant de connecter du code dans le cycle de vie de la page qui s'exécute une fois. Chaque fois que l'instance de page passe par les mêmes étapes. C'est le modèle.

0

Il n'y a pas d'événement appelé uniquement une fois. Dans ASP.NET MVC, vous pouvez distinguer GET et POST à ​​l'aide de l'attribut AcceptVerbs, mais cela s'apparente à IsPostBack, en examinant l'objet Request.

Init est appelé avant que tout ViewState est chargé afin que cela puisse aider, et la méthode LoadViewState est appelée uniquement lorsqu'un ViewState est chargé.

, ceci est une simplification de la liaison ci-dessus:

OnInit: 1
LoadViewState: 2
CreateChildControls: 3
OnLoad: 4
ShowButton: 5
OnPreRender: 6
Rendu : 7
OnUnload: 8

Le numéro 3 peut apparaître à n'importe quel point de la chaîne.

Questions connexes