Pb de viewsate

equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011 - 14 oct. 2008 à 19:07
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011 - 29 oct. 2008 à 14:18
Bonjour à tous!
J'ai un Pb que je n'arrive pas à résoudre ... depuis quelques jours !!
j'ai un gridview dans un updatePanel dans lequel je sélectionne une ligne.
j'ai un formview dans un autre updatePanel qui affiche la row.
Je clique sur modifier, j'applique les modifs et j'update.
Jusque là, tout va bien.
 Le Pb, c'est que dès que je tente de cliquer à nouveau sur modifier dans mon formview, j'ai une erreur :
echec de chargement de viewstate.
J'ai fait simple dans l'exemple mais ma page mais celle -ci intègre pas mal de code (plusieurs gridview, plusieurs formview, un treeview ) le tout dans des updatePanel différents.
Aucun de mes éléments n'a de enableviewstate à False.
Je n'arrive pas à trouver de quel élément vient l'erreur.
Quelqu'un aurait-il une idée? une piste ?? ou une solution de débogage ???
Merci d'avance!

10 réponses

danious Messages postés 27 Date d'inscription jeudi 8 juillet 2004 Statut Membre Dernière intervention 5 novembre 2008
15 oct. 2008 à 09:06
Bonjour,

Tu dis que tous tes éléments ont enableviewstate à true. Si certains contrôles de ta page sont créés dynamiquement, ils ne peuvent pas récupérer leur viewstate car ils sont supprimés au postback suivant. Il faut donc que tu vérifies que les contrôles créés dynamiquement aient enableviewstate à false.

En espérant que ça t'aide.

Sinon, tu peux essayer de reproduire le problème dans une nouvelle page où tu n'aurais que ton gridview et ton formview, puis en ajoutant les updatepanel, etc...
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
15 oct. 2008 à 09:21
Bonjour Danious,
et merci pour le partage !
Le seul contrôle que je crée dynamiquement est un treeview un peu complexe (il est rempli au travers de requêtes sql). J'ai donc porté une attention particulière à ce controle, tu t'en doutes.
Ce qui me trouble c'est que je n'ai le Pb que sur un seul de mes formviews (les autres ne posent aucun Pb).
J'aurais donc tendance à éliminer le treeview des pistes de recherche.
Mais comme je ne vois pas bien comment récupérer quel controle pose Pb (le message est vraiment trop succint), je pense que je vais faire, comme tu le préconise, une page vierge sur laquelle je placerai les éléments au fur et à mesure. Ca va me demander pas mal de boulot car j'ai un code behind assez lourd.
Dommage que personne n'ait une idée sur la manière de récupérer l'ID du controle qui pose Pb ...
Je posterai mon resultat.
Merci à toi.
Bonne journée
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
15 oct. 2008 à 10:52
Bonjour,

Tu as les sources du framework, tu peux essayer d'aller en pas à pas dans le framework et voir où ca plante.
Pour ça le plus simple c'est de recuperer le nom de l'exception dans le menu debug > exceptions, tu cherches l'exception qui plante et tu met throw, comme ca meme pour les erreurs "premiere chance" Visual Studio s'arretera sur le problème.  

<hr />Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
15 oct. 2008 à 17:54
Bonjour Cyril,
et merci pour la réponse.
J'ai tenté de faire à ton idée ... mais bon, c'est un peu subtil pour moi.
J'ai néanmoins réussi (à force de test) à isoler le Pb.
Il vient des deux updatesPanel que j'utilise (un pour le gridview, un autre pour le formview).
Si je les enlève, aucun Pb. Si je les replace, ça coince!
Grrrr !!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
15 oct. 2008 à 18:06
Si t'as un exemple simplissime reproduisant le problème, contacte moi par MP pour que je te donne mon mail afin que tu m'envoie les sources. A partir de là je bloguerais sur comment trouver le problème, car en effet peu de gens savent comment utiliser les "first chance exception" avec le code source du framework, c'est QDB ;-)

Si l'exemple est pas super simple, envoie quand meme du moment que j'arrive à reproduire le problème facilement, je pourrais blogger sur comment fouiller dans les entrailles du framework :-)

<hr />Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
15 oct. 2008 à 18:19
Merci Cyril,
je vais voir ce que je peux te proposer de :
- simple
- sans Pb de confidentialité (j'ai une BD un peu sensible),
- ET surtout ... qui reproduit l'erreur ...
Je te contacte par MP dès que j'ai ça.
@+ et encore merci.
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
22 oct. 2008 à 19:05
Bonjour à tous,
en attendant que JesusOnLine nous ponde un outil dont il a le secret pour nous permettre de pointer plus facilement nos Pb de retours de codes sous Ajax (merci d'avance à lui !!), j'ai continué sur ma lancée.
En fait, le Pb semble venir de l'interieur de l'updatePanel du Formview.
Bien que l'updatePanel du gridview dispose d'un trigger sur le formview_ItemUpdate, j'ai un process complémentaire qui est réalisé APRES la mise à jour du formview au travers de l'évènement updated de l'objectDataSource.
Je ne vois pas bien comment intégrer cet évènement dans mon trigger.
Une idée ??
Merci d'avance et bon code à tous !!
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
23 oct. 2008 à 10:00
J'ai résolu mon Pb !
Il s'agissait d'un formview annexe dont je modifiait certains items sans mettre à jour l'affichage (databind).
C'est un Pb que j'avais déjà évoqué et pour lequel je n'ai toujours pas de réponse :
Quand on a un souci sur un viewstate, comment savoir quel élément est en cause ??
Le message d'erreur n'est pas assez explicite et je suis obligé de 'tatonner'.
Bon code à tous ... et merci pour votre écoute !!
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
29 oct. 2008 à 11:02
Bonjour,

Voici la premiere partie de l'explication pour trouver d'où vient le soucis.

http://blogs.developpeur.org/cyril/archive/2008/10/28/bien-utiliser-les-sources-du-framework-net.aspx

J'ai pas encore eu le temps de rediger la deuxieme partie, mais en gros ca consiste à cocher Throw pour les managed exception dans la fenetre Debugs > Exception, ainsi Visual Studio va s'arreter sur les "first chance exception" tu verras ainsi d'ou vient le problème.

<hr />Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
29 oct. 2008 à 14:18
Bonjour Cyril,
Merci pour cette aide précieuse !!
Je suis sur qu'elle va servir sous peu !!!! (même si j'ai trouvé, un peu par hazard, la raison de mon Pb, j'ai déjà eu d'autres cas depuis)
A bientôt,
Frédéric
0
Rejoignez-nous