Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : UpdatePanel et EnableEventValidation [ Web 2.0 / Ajax ] (SuperBouly)

samedi 3 mai 2008 à 21:57:34 | UpdatePanel et EnableEventValidation

SuperBouly

Membre Club
bonjour,
Une fois de plus le problème de EnableEventValidation.
Ma page contient, entre autres, un gridView avec une colonne "Sélectionner" et un formview affichant le détail de l'enregistrement sélectionné. et on peut y éditer modifier supprimer cet enregistrement. Une RadioButtonList permet un filtrage des enregistrements: jusqu'ici ça va.

J'ai entrepris d'insérer le tout dans un UpdatePanel. Là, les FileUpload n'ont pas fonctionné, normal, j'ai donc déclaré les événements de mon formview en "PostBack" et non en "AsyncPostBack". et Hop après 2 où 3 clicks, par exemple sur la RadioButtonList l'erreur :

Argument de publication ou de rappel non valide. La validation d'événement est activée via <pages enableEventValidation="true"/> dans la configuration ou via <%@ Page EnableEventValidation="true" %> dans une page. Pour des raisons de sécurité, cette fonctionnalité vérifie si les arguments des événements de publication ou de rappel proviennent du contrôle serveur qui les a rendus à l'origine. Si les données sont valides et attendues, utilisez la méthode ClientScriptManager.RegisterForEventValidation afin d'inscrire les données de publication ou de rappel pour la validation.

alors j'ai écrit

ProtectedOverloadsOverridesSub render (ByVal writer As System.Web.UI.HtmlTextWriter)
      ClientScript.RegisterForEventValidation(rblDefi.UniqueID, "True")
'-------- ne marche pas non plus ------------------------------------------
      ClientScript.GetPostBackEventReference(rblDefi, "SelectedChanged", True)
'-----------------------------------------------------------------------------------
   MyBase.Render(writer)
End
Sub

Mais rien ne s'arrange, j'ai lu beaucoup de littérature su la question, j'ai bien lu l'excellent blog http://blogs.developpeur.org/cyril/archive/2007/01/09/validation-d-evenement-en-asp-net-2-0-eventvalidation.aspx, également le post qui semble résolu :
http://www.aspfr.com/infomsg_PROBLEME-VALIDATION-EVENEMENT_904959.aspx, mais j'avoue ne pas bien saisir la solution.
Y a-t-il une solution,sûrement !
Je précise qu'évidemment , si je mets sur ma page : EnableEventValidation="false" 
 tout s'arrange, mais...
merci de vos lumières

SuperBouly

dimanche 4 mai 2008 à 21:26:03 | Re : UpdatePanel et EnableEventValidation

SuperBouly

Membre Club
Réponse acceptée !

ok, j'ai trouvé, j'avais oublié de mentionner un trigger (la radioButtonList du 2e UpdatePanel justement) dans le premier UpdatePanel. Au moins, cet exemple peut servir à savoir que ce que ce genre d'oubli peut provoquer et à orienter les recherches..
merci
SuperBouly

dimanche 4 mai 2008 à 21:38:14 | Re : UpdatePanel et EnableEventValidation

jesusonline

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Bonjour,

Tu peux essayer de nous fournir un exemple le plus simpliste possible nous permettant de reproduire le problème. Car là c'est pas évident de t'aider.
Sinon, voici quelques pistes pour debugger, regarde ce que vaut Request.Form["__EVENTTARGET"] ensuite met un point d'arret dans le page_load (avant que l'erreur se produise) charge les symbols du framework (afin de récuperer les sources du framework), dans le menu debug > Exceptions, coche ce qu'il faut pour que VS s'arrete sur l'exception et normalement à partir de là tu vas réussir à tomber sur la source de l'exception (dans les sources du framework) et tu vas pouvoir analyser le call stack, afin de comprendre le problème.

Le debug, c'est tout un art :)


Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant

lundi 5 mai 2008 à 06:56:28 | Re : UpdatePanel et EnableEventValidation

SuperBouly

Membre Club
Réponse acceptée !

   Merci de ces pistes de recherche, je sais que la situation est très embrouillée, mais puisque le pb est résolu, je peux tout de même donner une idée de ce qui a provoqué l'erreur en simplifiant au maximum, je crois que ça peut intéresser.

J'ai 2 UpdatePanels (UP1 et UP2).
Dans le premier,UP1, un controle utilisateur CU muni d'une propriété "EstVisible", et dont le contenu est dépendant de controles situé dans UP2.
Dans le second, Un gridView GV avec une colonne de linkButtons "sélectionner" qui affichent dans un FormView FV, le détail d'un enregistrement en vue de modification/suppression. Mais aussi une RadioButtonList rbl de tri des enregistrements de GV.
là, 2 choses se sont entrechoquées :
 - Des fileUpload dans FV: J'ai du mettre FV en Postback simple dans les 2 UP et ChildrenAsTriggers="False" et le détail des triggers partout.
- et la sub sur la sélection de la RadioButtonList :

ProtectedSub rbl_SelectedIndexChanged(ByVal sender AsObject, ByVal e As System.EventArgs) Handlesrbl.SelectedIndexChanged
'----------------du code -------------------
CU.EstVisible = False   '<-----Cette instruction faisait planter
'----------------du code -------------------


Oui, cette instruction faisait planter  car Dans UP1, j'avais oublié de déclarer la radio buttonList en Trigger.(!)

<Triggers>
<asp:AsyncPostBackTriggerControlID="GV"EventName="SelectedIndexChanged"/>
<asp:PostBackTriggerControlID="FV"/>
' OUBLI :
<asp:AsyncPostBackTriggerControlID="rbl"EventName="SelectedIndexChanged"/>
< -------- autres triggers ------------

</Triggers>Je sais que c'est très difficile à suivre, mais EN UN MOT, l'erreur vient de la non déclaration d'un trigger dans UP1 alors que un évènement dans UP2 demande une modification de son contenu. D'ou la suspicion .... Fallait trouver !
merci en tout cas de ta méthode pour un débogage fouillé, je la note.

SuperBouly

lundi 5 mai 2008 à 13:55:31 | Re : UpdatePanel et EnableEventValidation

jesusonline

Membre Club Administrateur CodeS-SourceS
Ca m'a l'air un poil compliqué, je n'ai pas tout suivi (et j'ai pas pris le temps pour ;)) mais je ne pense pas que l'erreur viennent que "un évènement dans UP2 demande une modification de son contenu." c'est plutot que de mettre estVisible à false entraine des modification de structure au niveau de l'arbre de controle lors du render (déplacé/suppression de noeud). Tu peux surement modifié une propriété "à la con" sans que cela pose ce genre de problème :p

Bref, t'as quand meme réussis à resoudre le problème sans mettre enableEventValidation à false contrairement à ce que tous le monde fait :)


Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant

lundi 5 mai 2008 à 17:06:08 | Re : UpdatePanel et EnableEventValidation

SuperBouly

Membre Club

oui, c'était compliqué, j'ai donc simplifié, la propriété n'est pas vraiment "EstVisible",  mais elle concerne la visibilité seulement d'une partie de l'UserControl, une liste de noms... je ne sais pas si ça change qqchose à ton diagnostic, en tout cas c'est vrai que la tentation est forte de mettre enableEventValidation à false et basta !.
SuperBouly



Cette discussion est classé dans : page, publication, validation, updatepanel, enableeventvalidation


Répondre à ce message

Sujets en rapport avec ce message

HELP : validation + parametre ... [ par yearling ] Comment puis-je faire pour valider les champs de mon formulaire et passer certains champs de mon formulaire a une autre page web.Ex :Ma 1ere page dema raffréchir les données après validation d'un formulaire [ par Cjulien ] voici mon souci: je remplis un formulaire puis lorsque je le valide, une page intermediaire rempli ma base de donnée et une fois ces données rajoutées Validation avant envoi vers ASP et acces impossible de la page ASP directement [ par dragon ] je suis entrain de faire un projet et je veux valider des information avant de les envoyer à une page ASP.le problème est que la validation se fait et erreur <%@ Page EnableEventValidation="true" %> [ par babybutt ] Bonsoir,Depuis tout à l'heure j'ai cette erreur sur mon projet, je ramène le boulot à la maison parce que j'ai une présentation du projet lundi devant ouvrir une autre page apres validation d'un formulaire en asp.net [ par Sardonnen ] bonjour,je recherche la syntaxe qui me permettrait d'ouvrir une autre page en passant certains éléments du formulaire après une validation de celui ci ValidationSummary [ par Mickey VB ] Bonjour,J'ai un petit pb avec la validation d'un formulaire créé en ASP.netPour les boutons (validation et autres ...) j'ai utilisé une balise et cré Liens vers d'autre page et validation [ par leviz ] Bonjour! J'ai un problème : j'ai une méthode dans laquelle j'éxecute du code. Cette méthode est appellé lors d'un clic sur le bouton. Jusqu'ici tout Validation d'un formulaire à partir d'une autre page [ par isame ] slt a tous!! voila je voudrais savoir si dabor il est possible de valider un formulaire (bouton type submit) qui se trouve sur une page (page1) à part Problème lors du chargement d'une page [ par damiendu56 ] bonjour  à tous,je développe une application asp.net dans laquelle j'ai un petit soucis. J'ai une fonctionnalité sur l'application qui permet de faire Problème avec la publication de mon site [ par gabiset ] Bonjour,Je travaille sous Visual Studio 2005 avec ASP et VB, je débute sous cet environnement. J'ai vu qu'il fallait publier son site avant de le mett


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 3,541 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.