2009-05-12 5 views
2

Je déteste vraiment cette erreur, car il peut être si difficile de déterminer le point.Invalid Postback erreur lors de la liaison de données d'un gridview

Dans ce cas, j'ai une page avec un contrôle utilisateur qui contient un gridview. Lorsqu'un bouton est cliqué pour afficher l'un des enregistrements dans la grille, une fenêtre contextuelle (sous la forme d'une boîte de dialogue modale) s'ouvre et permet à l'utilisateur d'éditer les champs. Ensuite, lorsque la fenêtre contextuelle est fermée, le code côté serveur du bouton est déclenché, ce qui mène finalement à une ligne de code qui appelle GridView1.databind() ;. Lorsque cette ligne de code est déclenchée, j'obtiens l'erreur de publication invalide. Si cette ligne est commentée, je ne reçois pas l'erreur. Cela se produit que j'effectue ou non des changements dans la fenêtre pop-up. Et à aucun moment, il n'y a de code côté client modifiant les valeurs dans mes contrôles. Donc, il semble que quelque chose a changé avec le gridview qu'il n'aime pas. Je pense que cela pourrait avoir à faire avec l'ObjectDataSource qu'il utilise. J'ai remarqué qu'avant que la grille ne soit databound, les paramètres d'entrée ODS sont définis en utilisant des valeurs de session. Dans tous les cas, quelque chose change ici et provoque cette erreur. Donc, j'ai essayé de faire:

protected override void Render(System.Web.UI.HtmlTextWriter writer) 
{ 
    Page.ClientScript.RegisterForEventValidation(GridView1.UniqueID); 
    base.Render(writer); 
} 

J'ai également essayé d'enregistrer l'ODS. Mais aucune approche n'a résolu mon problème.

Que dois-je faire? Je suis complètement perplexe à ce stade.

Répondre

1

Je suis assez sûr que l'erreur de publication invalide vient de mettre votre appel à la fonction de liaison de données dans le Load Load.