Die ASP.NET Eventvalidierung ist ein Feature, welches davor schützen soll, dass bei einem PostBack "manipulierte" Werte zurückgeliefert werden, wodurch evtl. die Integrität deiner Applikation sicherheitstechnisch gefährdet sein kann (z.B. indem ein Hacker einfach in ein Hidden-Element irgendeinen Wert reintut und zurück postet, der da gar nicht drin sein dürfte, vereinfacht ausgedrückt.)
Dieses Feature lässt sich auch ganz einfach abschalten, indem man PageValidation für die entsprechende Seite einfach deaktiviert (enableEventValidation="false"). Dann wird mit Sicherheit dieser Fehler nicht mehr auftauchen, du musst jedoch selbst sicherstellen, dass die PostBack-Werte allesamt korrekt sind und dem entsprechen, was deine Anwendung erwartet. Es handelt sich eigentlich um ein Komfort-Sicherheitsfeature.
Vielleicht hilft dir diese kurze Ausfürung ja dabei, herauszufinden, was bei dir die PageValidierung fehlschlagen lässt, ich tippe eher auf das DataGrid als auf die Textbox.
Es kann auch an den Eingabewerten der TextBox gelegen haben oder daran, dass du diese Inhalte gleich wieder in dem DataGrid anzeigen willst. Da können Sicherheitsprobleme auftreten (Stichwort Code Injection), die eben die PageValidierung abfangen will. Das Feature funktioniert so. Wnen man einen speziellen Fall hat, wo man das nicht möchte, schaltet man einfach die PageValidierung ab und muss sich dann selbst um das entsprechende Risiko kümmern, so wie du bei diener Lösung jetzt. Läuft auf's gleiche bei raus...