Accueil > Forum > > > > conserver ses données en passant d'une page à l'autre
conserver ses données en passant d'une page à l'autre
mercredi 3 août 2005 à 14:30:54 |
conserver ses données en passant d'une page à l'autre

marhoa
|
Salut,
J'ai créé une page aspx où l'utilisateur doit entrer des informations qui seront enregistrées dans une table de base de données. Et, pour éviter d'avoir à faire des requètes supplémentaires avant d'éxécuter ma requète, j'ai voulu créer une classe dont certains champs sont remplis pdt que l'utilisateur fait ses choix. Afin que celle si soit accessible de l'ensemble des fonctions que j'utilise, je l'instancie en dehors des fonctions, juste après sa déclaration, comme ci-dessous:
public class CIntervention
{
public CIntervention(){}
public decimal dNature;
public decimal dRefSite;
public string sRefIntervenant;
};
CIntervention oIntervention = new CIntervention();
Oui mais voilà, les choix de l'utilisateurs sont effectués grâce à des listes déroulantes qui entrainent le rechargement de la page lorsqu'on les sélectionne (propriété autopostback à true) et aujourd'hui, je m'aperçois qu'au chargement de la page mon objet oIntervention est réinstancié et mes données sont écrasées.
Je me demande donc s'il y a un moyen de stocker mes données autrement. Je me demande aussi si la façon de gérer mais classes est vraiment conforme à ce qu'on doit faire sur asp.net, à ce sujet si quelqu'un connait un livre, un site ou un tutorial expliquant le fonctionnement des classes sous asp.net, pourrait-il me dire comment me les procurer?
Une autre question me taraude au plus haut point, est-il vraiment possible de faire ce que je veux faire?
Voilà, merci de votre aide
|
|
mercredi 3 août 2005 à 15:41:56 |
Re : conserver ses données en passant d'une page à l'autre

jesusonline
|
Réponse acceptée !
Bonjour,
pour la gestion des classes, n'importe quelle bouquin traitant de la
programmation orienté object fera l'affaire, en VB.net je ne pense pas
que ca existe, mais tu pourras trouver les concepts important de la COO
dans n'importe quel bouquin traitant du sujet (généralement en C++)
Pour ton problème d'ecrasement, c'est normal, il faut bien voir que
chaque requete entraine le rechargement complet de la page, donc à
chaque fois il va passer par lepage_load etc... pour savoir si la page
vient d'un postback tu as la propriété page.ispostback et tu peux
egalement stocké des variables simples dans le viewstate de la page,
mais attention ca ecrit ca dans un champ caché de la page HTML, donc le
transfert de la donnée se fait 2 fois ...
pour cela, il faut que t'as classe soit serializable et ensuite tu met
ton objet dans le viewstate. Pour rendre ta classe serializable, il
faut utiliser l'attribut Serializable
[serializable()]
public class CIntervention
{ ... }
et enfin pour recuperer / mettre la variable dans le viewstate on utilise généralement une propriété
public property obj as Tonobject
get
if not viewstate("keyobj") is nothing then
'c'est pas bien de parser comme ca !!!
try
return ctype(viewstate("keyobj"))
catch
return defobj
end try
end if
return defobj
end get
set (byval value as TonObject)
viewstate("keyobj") = value
end set
end property
Je viens d'y penser pour un bouquin pour les classes en C# il y a le
formation à C# de Ms press, et pour la gestion de projet en asp.net
j'ai pas lu de bouquins en parlant bien. C'est surtout l'experience ...
Cyril - MCP ASP.netWebmaster de : Hoshimi.CodeS-SourceS.fr
|
|
jeudi 4 août 2005 à 17:22:39 |
Re : conserver ses données en passant d'une page à l'autre

marhoa
|
Merci pour la serialisation, ça m'a bien aidé. Par contre j'ai pas étudié le viewstate, en fait je créé un fichier xml ou je stocke les données de ma classe (à l'aide de la méthode serialize)et lorsque la page se relance j'utilise la méthode deserialize pour réintroduire les données dans mon instance de classe. Peut être que plus tard j'essaierai avec viewstate mais là j'ai pas trop le temps.
Pour la programmation en objet j'ai pas de problème mais c'est la gestion des classes par asp.net dont je suis pas sûr mais là ça marche donc ça doit pas être trop mal.
Quand au livre "Formation à c#", ça fait un moment que j'en ai entendu parler mais il est toujours en rupture de stock, il va falloir que j'aille voir sur d'autres sites.
En tout cas merci, Serialize m'a sauvé la vie! (et toi aussi)
Salut
|
|
jeudi 4 août 2005 à 17:28:36 |
Re : conserver ses données en passant d'une page à l'autre

jesusonline
|
ben si t'as fait un serialize tu stockes ou le xml ? sur le dd ? et si plusieurs personnes font la requete ? pour le viewstate, c'est tout con au lieu de sauvegarder le fichier xml sur le dd ou ailleurs tu fais viewstate(key) = instance_de_ton_object puis ensuite pour le recuperer un simple ctype(viewstate(key), typedetonobject) et c'est finit :)
Cyril - MCP ASP.netWebmaster de : Hoshimi.CodeS-SourceS.fr
|
|
lundi 8 août 2005 à 15:30:00 |
Re : conserver ses données en passant d'une page à l'autre

marhoa
|
oui je stocke le fichier sur le disque dur mais chaque utilisateur étant identifié, chacun a un fichier avec un nom différent (dès fois je réfléchis un peu quand meme). Mais je crois que je vais essayer avec le viewstate parceque, apparemment VS aurait un bug avec la gestion des fichers xml (moi j'utilise WebMatrix mais bon...).
Lorsque je tente de charger le fichier xml, je recois l'erreur suivante:
The process cannot access the file "\\PRINTSIEGC04N2\DevOuest\MitelOrga\donneesSEB.xml" because it is being used by another process.
Apparemment le seul moyen de fixer ce problème est de modifier l'antivirus du serveur mais je n'ai pas accès à mon serveur IIS, je ne peux pas effectuer ces manips.
Donc je vais faire comme tu dis, en plus ça évitera de crééer pleins de petits fichiers sur le serveur.
|
|
lundi 8 août 2005 à 16:05:11 |
Re : conserver ses données en passant d'une page à l'autre

jesusonline
|
Le problème que tu décris, c'est que IIS a déjà la main sur le fichier,
et 2 process ne peux pas locker le fichier en meme temps et
heureusement, mais peut etre que tu as oublié de faire un dispose dans
ton code ? Cyril - MCP ASP.netWebmaster de : Hoshimi.CodeS-SourceS.fr
|
|
mardi 9 août 2005 à 10:10:10 |
Re : conserver ses données en passant d'une page à l'autre

marhoa
|
ba le dispose il en veut pas:
monStreamReader.Dispose();
->'System.IO.TextWriter.Dispose(bool)' is inaccessible due to its protection level
Par contre j'ai essayé d'utiliser viewstate mais là encore... (tu vas croire que j'en fait exprès). Je n'ai pas pu utiliser CType car ça n'existe pas en c# mais j'ai forcé la conversion et ça semble passer mais...
CIntervention Intervention2 = new CIntervention();
Intervention2 = (CIntervention)ViewState["intervention"];
->Object reference not set to an instance of an object.
Pourtant j'ai cherché mais le problème ne vient pas des fonctions utilisées mais de l'objet (enfin c'est ce que je crois d'après mais faibles compétences et aussi d'après la phrase d'erreur) et là pour comprendre c'est plus chaud. Il parle de référence, serait-ce un problème de pointeur?
Là, je m'en remets à toi! ou à une autre âme charitable qui passerait dans le coin parceque là ça bloque un petit peu l'avancer de mon projet, Merci d'avance.
|
|
mardi 9 août 2005 à 10:15:07 |
Re : conserver ses données en passant d'une page à l'autre

jesusonline
|
ctype n'existe pas en c# mais l'equivalent est bien ce que tu as fait :) Ton problème est normal ! la premiere fois que tu vas chercher ton objet le viewstate est vide et en faisant ce que tu veux ca revient à faire (CIntervention)null et il aime pas caster null en un autre objet :p c'est pour ca que si tu regardes le code que j'ai mis plus haut, j'avais fait if ! viewstate["intervention"] == null then Le problème est il compris ?
Cyril - MCP ASP.netWebmaster de : Hoshimi.CodeS-SourceS.fr
|
|
mardi 9 août 2005 à 12:00:34 |
Re : conserver ses données en passant d'une page à l'autre

marhoa
|
Mais c'est biensur!
Je suis vraiment naze, c'était pourtant pas compliqué à voir mais j'étais carrément parti voir ailleurs: je pensais que justement lors de la première execution ca marchait mais que c'était lorsque le ViewState était plein que ça faisait tout planté. Enfin bon, encore une fois, c'est une victoire de superJesusOnline! Merci JE T'AIME! :) (bon ok je me calme)
|
|
Cette discussion est classée dans : public, page, données, conserver, cintervention
Répondre à ce message
Sujets en rapport avec ce message
confirmation de suppression [ par Stef ]
Salut à tous!Sauriez vous me dire comment je peux faire pour créer une page popup type de demande de confirmation de suppression d'enregistrement ds u
Afficher une image d'une base de données sur une page web [ par jimini ]
Est-ce que quelqu'un sait comment afficher une image provenant d'une table ? J'aimerais enregistrer une image par ligne dans ma base de données. Tout
Aidez moi SVP je perds les données d'un formulaire!!! [ par vlavaud ]
Bonjour , J'ai un gros problème , j'ai fait un site en asp avec un page séparée en deux par une frame (Donc trois pages )dans la page du haut j'ai des
Insertion de données dans une BD à la fermeture d'une page [ par cfabre22 ]
Bonjour à tous,je souhaiterais savoir s'il est possible d'insérer des données dans une base de données lors de la fermeture d'une page asp.En vous rem
Extraction de données d'une page web [ par atarik ]
SVP, j'ai besoin de savoir comment extracter le contenu d'un tableau d'une page web et la mettre ds ma page pour être toujours à jours.c'est très urge
récupérer les données d'une liste dans une autre page [ par foofur ]
Bonjour a tous et à toutes,Je dispose de 2 listes : une contenant les champ d'une table et l'autre permettant de choisir comment l'ordre de ces champs
Envoie de données vers une page d'accès aux données et redirection vers celle-ci (URGENT) [ par LG1 ]
Bonjour1) Dans une page HTML, en vbscript j'exécute une requête et je mets le résultat dans un RecordSet. 2) J'ai créé une page d'accès aux données à
Form rechargée lors reaffichage de la Page [ par merlu ]
Dans ma Page: Une Form et un ajout en base de données. Un fois la form ajoutée , les informations sont stockés en base de données SQL.Seulement,
Affichage dans excel et mise à jour simultané des données [ par fr64 ]
Bonjour,Afin d'afficher des données dans excel via une page asp, j'utilise l'instruction Response.ContentType="application/vnd.ms-excel"Les données qu
Prob de refresh [ par ypothier ]
Bonjour, J'ai une page en asp qui se connect sur une BD SQL SERVER.Dans ma page, lorsque je clique sur un bouton, je fais apparaître une nouvelle fenê
Livres en rapport
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Forum
RE : FORMULAIRERE : FORMULAIRE par ap24dp
Cliquez pour lire la suite par ap24dp RE : FORMULAIRERE : FORMULAIRE par jopop
Cliquez pour lire la suite par jopop RE : FORMULAIRERE : FORMULAIRE par ap24dp
Cliquez pour lire la suite par ap24dp RE : FORMULAIRERE : FORMULAIRE par jopop
Cliquez pour lire la suite par jopop
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|