OVH Cloud OVH Cloud

Variable membre..

2 réponses
Avatar
Patrick Bastin
bonjour,

voila mon probl=E8me : j'ai une page ASP.NET dans cette page=20
j'ai une Datagrid, jusque la rien de compliqu=E9. Maintenant=20
pour remplir cette Datagrid, je dispose d'une cha=EEne de=20
caract=E8re. Cette cha=EEne est stoqu=E9e dans une variable=20
string membre de ma classe a savoir :

public class PhoneticSearch : System.Web.UI.Page
{
protected string strReceiveData;

}

Mon probleme est simple je cr=E9e un DataSet avec les=20
donn=E9es m=E9moris=E9es dans ma cha=EEne de caract=E8res. jusque la=20
rien de compliqu=E9, ca marche.

Maintenant ma Datagrid comprend plusieurs pages (a savoir=20
le param=E8tre : AllowPaging=3D"True"). Et quand je clique sur=20
l'une de ces pages et bien comme par magie ma variable=20
strReceiveData est remise =E0 null).
Donc lors de la phase de remplissage de mon DataSet il y a=20
une erreur.

Est ce que quelqu'un pourrait m'aider moi je comprend plus=20
rien.

Icrem.
Patrick.

2 réponses

Avatar
Paul Bacelar
Pas de panique.

En ASP.NET, les objets pages ASPX sont recrées sur le serveur à chaque
requête sur la page et quand tu click sur les contrôles de paging, tu
reposte le formulaire contenu dans la page du client vers le serveur.

Donc IIS+ASP.NET récupèrent les données du formulaire qui ont été envoyé par
la requête et mettent à jour la valeur des propriétés des contrôles marqués
avec "runat=server".

Ton objet page ne vie que le temps de traiter une requête, un nouvel objet
page est créée pour la requête suivant mais en initialisant la valeur des
contrôles avec les données envoyé par le formulaire, faisant faussement
croire qu'un objet page dure plus longtemps.

Ta variable membre est donc réinitialisé à chaque requête à la page.

Avec mes explications il devient, je l'espère, évident qu'il faut que la
valeur de ton membre soit sauvegardée entre les différentes requêtes.

La méthode la plus simple est d'ajouté un contrôle type HIDDEN dans le
formulaire ASP.NET qui conservera la valeur durant les aller-retour entre le
serveur et le client.

Mais une méthode plus élégante est l'utilisation de la propriété State de la
page qui conserve des valeur dans une table durant toutes la duré d'une
session utilisateur.

--
Paul Bacelar
Demandeur d'emploi

"Patrick Bastin" wrote in message
news:595a01c491b6$39302b30$
bonjour,

voila mon problème : j'ai une page ASP.NET dans cette page
j'ai une Datagrid, jusque la rien de compliqué. Maintenant
pour remplir cette Datagrid, je dispose d'une chaîne de
caractère. Cette chaîne est stoquée dans une variable
string membre de ma classe a savoir :

public class PhoneticSearch : System.Web.UI.Page
{
protected string strReceiveData;

}

Mon probleme est simple je crée un DataSet avec les
données mémorisées dans ma chaîne de caractères. jusque la
rien de compliqué, ca marche.

Maintenant ma Datagrid comprend plusieurs pages (a savoir
le paramètre : AllowPaging="True"). Et quand je clique sur
l'une de ces pages et bien comme par magie ma variable
strReceiveData est remise à null).
Donc lors de la phase de remplissage de mon DataSet il y a
une erreur.

Est ce que quelqu'un pourrait m'aider moi je comprend plus
rien.

Icrem.
Patrick.
Avatar
Patrick Bastin
Merci beaucoup pour m'avoir ouvert les yeux.
Je vais tout de suite mettre ca en pratique.

-----Message d'origine-----
Pas de panique.

En ASP.NET, les objets pages ASPX sont recrées sur le


serveur à chaque
requête sur la page et quand tu click sur les contrôles


de paging, tu
reposte le formulaire contenu dans la page du client vers


le serveur.

Donc IIS+ASP.NET récupèrent les données du formulaire qui


ont été envoyé par
la requête et mettent à jour la valeur des propriétés des


contrôles marqués
avec "runat=server".

Ton objet page ne vie que le temps de traiter une


requête, un nouvel objet
page est créée pour la requête suivant mais en


initialisant la valeur des
contrôles avec les données envoyé par le formulaire,


faisant faussement
croire qu'un objet page dure plus longtemps.

Ta variable membre est donc réinitialisé à chaque requête


à la page.

Avec mes explications il devient, je l'espère, évident


qu'il faut que la
valeur de ton membre soit sauvegardée entre les


différentes requêtes.

La méthode la plus simple est d'ajouté un contrôle type


HIDDEN dans le
formulaire ASP.NET qui conservera la valeur durant les


aller-retour entre le
serveur et le client.

Mais une méthode plus élégante est l'utilisation de la


propriété State de la
page qui conserve des valeur dans une table durant toutes


la duré d'une
session utilisateur.

--
Paul Bacelar
Demandeur d'emploi

"Patrick Bastin"


wrote in message
news:595a01c491b6$39302b30$
bonjour,

voila mon problème : j'ai une page ASP.NET dans cette page
j'ai une Datagrid, jusque la rien de compliqué. Maintenant
pour remplir cette Datagrid, je dispose d'une chaîne de
caractère. Cette chaîne est stoquée dans une variable
string membre de ma classe a savoir :

public class PhoneticSearch : System.Web.UI.Page
{
protected string strReceiveData;

}

Mon probleme est simple je crée un DataSet avec les
données mémorisées dans ma chaîne de caractères. jusque la
rien de compliqué, ca marche.

Maintenant ma Datagrid comprend plusieurs pages (a savoir
le paramètre : AllowPaging="True"). Et quand je clique sur
l'une de ces pages et bien comme par magie ma variable
strReceiveData est remise à null).
Donc lors de la phase de remplissage de mon DataSet il y a
une erreur.

Est ce que quelqu'un pourrait m'aider moi je comprend plus
rien.

Icrem.
Patrick.


.