Question

Lors de l'ajout d'un EditItemTemplate d'une certaine complexité (champs multiples dans un seul modèle), puis de l'analyse des contrôles de l'événement RowUpdating, les contrôles entrés manuellement par l'utilisateur ne contiennent aucune valeur. J'imagine qu'il se passe quelque chose lorsque les données sont liées, mais il est arrivé que le simple fait d'ajouter un attribut à un contrôle dans codebehind ait déclenché le comportement et que la suppression de ce code rende le code fonctionnel. En guise de solution de contournement, je peux demander à (controlname.UniqueId) d’obtenir sa valeur, mais c’est plutôt un hack.

Modifier Quand j'accède à la valeur comme si

TextBox txtValue = gvwSettings.SelectedRow.FindControl("txtValue") as TextBox;

la zone de texte est trouvée, mais le texte. n'est pas l'entrée utilisateur.

Était-ce utile?

La solution

Avez-vous désactivé ViewState? Avez-vous ajouté le contrôle par programme dans le modèle? Si oui, les avez-vous créés au bon moment?

Autres conseils

Vous devriez pouvoir utiliser GridViewUpdateEventArgs pour récupérer la valeur entrée, par exemple:

TextBox txtValue = gvwSettings.SelectedRow.FindControl("txtValue") as TextBox;

J'ai déjà utilisé cette syntaxe auparavant et cela fonctionne comme un charme.

Liaison de données post-back déplacée vers Page_Init

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top