2010-11-08 4 views
0

J'ai lu quelque part que les événements d'ASP .NET sont basés sur la page État de la page ASPX. Les valeurs des contrôles soumis sont mises en correspondance avec leur valeur d'état d'affichage et si une différence est trouvée, l'événement correspondant est appelé. Mais ma question est: "Lorsque les événements sont vraiment basés sur l'état d'affichage que pourquoi les événements sont déclenchés même lorsque l'état d'affichage est désactivé en utilisant EnableViewState = false."Les événements sont-ils basés sur l'état d'affichage dans ASP .NET

Merci, Guru.

+0

Un lien vers l'article auquel vous faites référence? – InSane

Répondre

0

Si vous voulez vraiment comprendre ViewState, passer par cet article ...

http://weblogs.asp.net/infinitiesloop/archive/2006/08/03/Truly-Understanding-Viewstate.aspx

Et celui-ci est msdn officiel @ ... http://msdn.microsoft.com/en-us/library/ms972976.aspx

Ce que je peux dire est .. Essayez de passer par le premier lien que je viens de partager ... et à la fin de cet article, vous aurez répondu à toutes vos questions. Je le considère comme le meilleur article disponible sur ce sujet. La réponse courte est ... les événements seront toujours là puisque c'est ainsi que le cycle de vie de la page devrait être ... dans un ordre spécifique! Et ce, quel que soit l'état d'affichage activé ou désactivé.

0

ViewState n'est qu'accessoirement lié aux événements ASP.NET. Une meilleure façon de formuler cela serait que les valeurs des contrôles soumis soient mises en correspondance avec les contrôles correspondants trouvés après la reconstruction de la page. Une page est reconstruite sur la base d'une combinaison de ViewState et la disposition d'origine de la page telle que définie dans le code-front. (sans compter que les contrôles peuvent être créés côté serveur dans la méthode virtuelle CreateChildControls soit dans vos propres pages/contrôles, soit dans des contrôles personnalisés tiers)

Pour ce qui est de votre question, je suppose que les événements sont déclenchés parce que les contrôles qui déclenchent les événements n'étaient pas basés sur l'état - ils sont définis statiquement dans le code-front et sont toujours disponibles.

Par contraste, certains contrôles sont créés à la volée. Par exemple, si vous utilisez un Repeater en combinaison avec un ItemTemplate, vous pouvez placer un bouton dans le modèle d'élément. Les éléments d'un répéteur dépendent des valeurs de son DataSource, pas du code-front. Par conséquent, si vous deviez désactiver ViewState dans ce scénario, vous manipuleriez en effet la gestion des événements.

Questions connexes