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.
Un lien vers l'article auquel vous faites référence? – InSane