Dans mon esprit le membre Compteur est initialisé à 5 lors du premier
chargement de la page aspx liée à ce code, et si je ne le touche pas par
ailleur cet attribut gardera constament cette valeur qui sera accessible
lors de tous les rechargement de la page suite à un postBack.
En réalité je me rend compte qu'à chaque rechargement de la page Compteur
vaut 0
Comment expliquer ce comportement ?
On dirait que l'objet Test était réinstancié à chaque chargement et les
membres réinitialisés.
Comment faire en sorte que mon attribut Compteur ne soit pas réinitialisé à
0 à chaque Page_Load ?
De manière plus générale je suis à la recherche d'un lien décrivant
l'instanciation et la vie des objets tels que l'objet Test au cours de
l'exécution d'une application ASP.NET.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Paul Bacelar
Là, je crois que Christian a une vue quelque peu idyllique d'ASP.NET.
-Premièrement, un int est toujours initialisé à 0.
-Secondo, le compteur n'est initialisé à 5 que dans la méthode Page_Load, c'est à dire bien après la construction de la page.
-Tertio, la page web est instanciée à chaque requête, et donc compteur et initialisé à 0.
-Quatrièmement, "Compteur" n'a pas la valeur qu'il avait dans l'instance de la page qui a traité la précédente requête du même utilisateur car, dans le ViewState de la page, la valeur de "Compteur" n'a pas été sauvegardé par l'instance de la page précédente et donc pas récupéré par l'instance de la page actuel, il n'y a pas de miracle, les concepteurs des WebControl se sont simplement arrangé pour sauvegarder les données dans le ViewState pour pouvoir les utiliser dans l'instance de la page qui suit.
-Cinquièmement, quand je dis que Page_Load, c'est longtemps après l' instanciation de la class de la page, ce n'est pas une figure de style.
-Sixièmement, pour ton cas du compteur, il est plus pertinent d'utiliser la propriété "State" de la page, pour éviter que ça valeur ne fasse la navette entre le client et le serveur.
Voilà, désolé de t'avoir cassé ton rêve ;-)
-- Paul Bacelar Demandeur d'emploi
"Christian Montpellier" wrote in message news:
Petit problème sur la programmation ASP.NET :
J'ai une classe sur le modèle suivant : public class Test : System.Web.UI.Page
Dans mon esprit le membre Compteur est initialisé à 5 lors du premier chargement de la page aspx liée à ce code, et si je ne le touche pas par ailleur cet attribut gardera constament cette valeur qui sera accessible lors de tous les rechargement de la page suite à un postBack.
En réalité je me rend compte qu'à chaque rechargement de la page Compteur vaut 0 Comment expliquer ce comportement ? On dirait que l'objet Test était réinstancié à chaque chargement et les membres réinitialisés. Comment faire en sorte que mon attribut Compteur ne soit pas réinitialisé
à
0 à chaque Page_Load ? De manière plus générale je suis à la recherche d'un lien décrivant l'instanciation et la vie des objets tels que l'objet Test au cours de l'exécution d'une application ASP.NET.
Merci,
Christian
Là, je crois que Christian a une vue quelque peu idyllique d'ASP.NET.
-Premièrement, un int est toujours initialisé à 0.
-Secondo, le compteur n'est initialisé à 5 que dans la méthode Page_Load,
c'est à dire bien après la construction de la page.
-Tertio, la page web est instanciée à chaque requête, et donc compteur et
initialisé à 0.
-Quatrièmement, "Compteur" n'a pas la valeur qu'il avait dans l'instance de
la page qui a traité la précédente requête du même utilisateur car, dans le
ViewState de la page, la valeur de "Compteur" n'a pas été sauvegardé par
l'instance de la page précédente et donc pas récupéré par l'instance de la
page actuel, il n'y a pas de miracle, les concepteurs des WebControl se sont
simplement arrangé pour sauvegarder les données dans le ViewState pour
pouvoir les utiliser dans l'instance de la page qui suit.
-Cinquièmement, quand je dis que Page_Load, c'est longtemps après l'
instanciation de la class de la page, ce n'est pas une figure de style.
-Sixièmement, pour ton cas du compteur, il est plus pertinent d'utiliser la
propriété "State" de la page, pour éviter que ça valeur ne fasse la navette
entre le client et le serveur.
Voilà, désolé de t'avoir cassé ton rêve ;-)
--
Paul Bacelar
Demandeur d'emploi
"Christian Montpellier" <xtian_news@hotmail.com> wrote in message
news:OzUFgGelEHA.1656@TK2MSFTNGP09.phx.gbl...
Petit problème sur la programmation ASP.NET :
J'ai une classe sur le modèle suivant :
public class Test : System.Web.UI.Page
Dans mon esprit le membre Compteur est initialisé à 5 lors du premier
chargement de la page aspx liée à ce code, et si je ne le touche pas par
ailleur cet attribut gardera constament cette valeur qui sera accessible
lors de tous les rechargement de la page suite à un postBack.
En réalité je me rend compte qu'à chaque rechargement de la page Compteur
vaut 0
Comment expliquer ce comportement ?
On dirait que l'objet Test était réinstancié à chaque chargement et les
membres réinitialisés.
Comment faire en sorte que mon attribut Compteur ne soit pas réinitialisé
à
0 à chaque Page_Load ?
De manière plus générale je suis à la recherche d'un lien décrivant
l'instanciation et la vie des objets tels que l'objet Test au cours de
l'exécution d'une application ASP.NET.
Là, je crois que Christian a une vue quelque peu idyllique d'ASP.NET.
-Premièrement, un int est toujours initialisé à 0.
-Secondo, le compteur n'est initialisé à 5 que dans la méthode Page_Load, c'est à dire bien après la construction de la page.
-Tertio, la page web est instanciée à chaque requête, et donc compteur et initialisé à 0.
-Quatrièmement, "Compteur" n'a pas la valeur qu'il avait dans l'instance de la page qui a traité la précédente requête du même utilisateur car, dans le ViewState de la page, la valeur de "Compteur" n'a pas été sauvegardé par l'instance de la page précédente et donc pas récupéré par l'instance de la page actuel, il n'y a pas de miracle, les concepteurs des WebControl se sont simplement arrangé pour sauvegarder les données dans le ViewState pour pouvoir les utiliser dans l'instance de la page qui suit.
-Cinquièmement, quand je dis que Page_Load, c'est longtemps après l' instanciation de la class de la page, ce n'est pas une figure de style.
-Sixièmement, pour ton cas du compteur, il est plus pertinent d'utiliser la propriété "State" de la page, pour éviter que ça valeur ne fasse la navette entre le client et le serveur.
Voilà, désolé de t'avoir cassé ton rêve ;-)
-- Paul Bacelar Demandeur d'emploi
"Christian Montpellier" wrote in message news:
Petit problème sur la programmation ASP.NET :
J'ai une classe sur le modèle suivant : public class Test : System.Web.UI.Page
Dans mon esprit le membre Compteur est initialisé à 5 lors du premier chargement de la page aspx liée à ce code, et si je ne le touche pas par ailleur cet attribut gardera constament cette valeur qui sera accessible lors de tous les rechargement de la page suite à un postBack.
En réalité je me rend compte qu'à chaque rechargement de la page Compteur vaut 0 Comment expliquer ce comportement ? On dirait que l'objet Test était réinstancié à chaque chargement et les membres réinitialisés. Comment faire en sorte que mon attribut Compteur ne soit pas réinitialisé
à
0 à chaque Page_Load ? De manière plus générale je suis à la recherche d'un lien décrivant l'instanciation et la vie des objets tels que l'objet Test au cours de l'exécution d'une application ASP.NET.
Merci,
Christian
Patrice
Voir http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpguide/html/cpconControlExecutionLifecycle.asp pour le cycle de vie (en français).
Pour des raisons de "ressources", tu comprendras qu'un serveur Web ne peut pas conserver dans le temps l'état de chaque page demandée par chaque client (de plus il ne peut pas savoir si la page sera encore accédée et donc si c'est utile !).
Par essence, un serveur Web ne fait donc que répondre "ponctuellement" à une chaque demande qui lui est faite (et en se basant uniquement sur la demande en cours) même si quelques mécanismes existent pour simuler la continuité (variables de session, d'application, cookie, champs de formulaire, paramètres sur URL et j'en oublie peut-être)...
Patrice
--
"Christian Montpellier" a écrit dans le message de news:
Petit problème sur la programmation ASP.NET :
J'ai une classe sur le modèle suivant : public class Test : System.Web.UI.Page
Dans mon esprit le membre Compteur est initialisé à 5 lors du premier chargement de la page aspx liée à ce code, et si je ne le touche pas par ailleur cet attribut gardera constament cette valeur qui sera accessible lors de tous les rechargement de la page suite à un postBack.
En réalité je me rend compte qu'à chaque rechargement de la page Compteur vaut 0 Comment expliquer ce comportement ? On dirait que l'objet Test était réinstancié à chaque chargement et les membres réinitialisés. Comment faire en sorte que mon attribut Compteur ne soit pas réinitialisé
à
0 à chaque Page_Load ? De manière plus générale je suis à la recherche d'un lien décrivant l'instanciation et la vie des objets tels que l'objet Test au cours de l'exécution d'une application ASP.NET.
Merci,
Christian
Voir
http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpguide/html/cpconControlExecutionLifecycle.asp
pour le cycle de vie (en français).
Pour des raisons de "ressources", tu comprendras qu'un serveur Web ne peut
pas conserver dans le temps l'état de chaque page demandée par chaque client
(de plus il ne peut pas savoir si la page sera encore accédée et donc si
c'est utile !).
Par essence, un serveur Web ne fait donc que répondre "ponctuellement" à une
chaque demande qui lui est faite (et en se basant uniquement sur la demande
en cours) même si quelques mécanismes existent pour simuler la continuité
(variables de session, d'application, cookie, champs de formulaire,
paramètres sur URL et j'en oublie peut-être)...
Patrice
--
"Christian Montpellier" <xtian_news@hotmail.com> a écrit dans le message de
news:OzUFgGelEHA.1656@TK2MSFTNGP09.phx.gbl...
Petit problème sur la programmation ASP.NET :
J'ai une classe sur le modèle suivant :
public class Test : System.Web.UI.Page
Dans mon esprit le membre Compteur est initialisé à 5 lors du premier
chargement de la page aspx liée à ce code, et si je ne le touche pas par
ailleur cet attribut gardera constament cette valeur qui sera accessible
lors de tous les rechargement de la page suite à un postBack.
En réalité je me rend compte qu'à chaque rechargement de la page Compteur
vaut 0
Comment expliquer ce comportement ?
On dirait que l'objet Test était réinstancié à chaque chargement et les
membres réinitialisés.
Comment faire en sorte que mon attribut Compteur ne soit pas réinitialisé
à
0 à chaque Page_Load ?
De manière plus générale je suis à la recherche d'un lien décrivant
l'instanciation et la vie des objets tels que l'objet Test au cours de
l'exécution d'une application ASP.NET.
Voir http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpguide/html/cpconControlExecutionLifecycle.asp pour le cycle de vie (en français).
Pour des raisons de "ressources", tu comprendras qu'un serveur Web ne peut pas conserver dans le temps l'état de chaque page demandée par chaque client (de plus il ne peut pas savoir si la page sera encore accédée et donc si c'est utile !).
Par essence, un serveur Web ne fait donc que répondre "ponctuellement" à une chaque demande qui lui est faite (et en se basant uniquement sur la demande en cours) même si quelques mécanismes existent pour simuler la continuité (variables de session, d'application, cookie, champs de formulaire, paramètres sur URL et j'en oublie peut-être)...
Patrice
--
"Christian Montpellier" a écrit dans le message de news:
Petit problème sur la programmation ASP.NET :
J'ai une classe sur le modèle suivant : public class Test : System.Web.UI.Page
Dans mon esprit le membre Compteur est initialisé à 5 lors du premier chargement de la page aspx liée à ce code, et si je ne le touche pas par ailleur cet attribut gardera constament cette valeur qui sera accessible lors de tous les rechargement de la page suite à un postBack.
En réalité je me rend compte qu'à chaque rechargement de la page Compteur vaut 0 Comment expliquer ce comportement ? On dirait que l'objet Test était réinstancié à chaque chargement et les membres réinitialisés. Comment faire en sorte que mon attribut Compteur ne soit pas réinitialisé
à
0 à chaque Page_Load ? De manière plus générale je suis à la recherche d'un lien décrivant l'instanciation et la vie des objets tels que l'objet Test au cours de l'exécution d'une application ASP.NET.