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
L'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIESL'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIES par odewit
La tendance est aux interfaces naturelles (NUI), et le keynote de Bill Buxton au MIX l'a bien souligné.
La charte graphique et ergonomique de Windows Phone 7 a donc été entièrement repensée en vue d'obtenir un maximum d'efficacité sur ce point. En re...
Cliquez pour lire la suite de l'article par odewit COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson
Forum
UTILISATEURUTILISATEUR par zaydounhlel
Cliquez pour lire la suite par zaydounhlel RE : VIRUSRE : VIRUS par ghuysmans99
Cliquez pour lire la suite par ghuysmans99
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|