Gridview RowUpdating cas, pas de tir
J'ai un Gridview avec AutoGenerateColumns="False"
.
Je suis à l'aide d'un TemplateField pour afficher mon Modifier, mettre à Jour et Annuler 'boutons' dans la première colonne de la GridView, au sein de ItemTemplate et EditItemTemplate champs.
Au sein de l'ItemTemplate j'ai un ImageButtong avec un CommandName de "Modifier". Cela fonctionne comme prévu et je peux mettre un point d'arrêt dans le RowCommand gestionnaire d'événements pour voir "l'Événement" le nom de la commande. Après qu'il a été cliqué sur la publication des endroits qui ligne dans le mode d'édition. Toutes les zones de texte apparaissent comme ils sont censés le faire.
À ce point dans le temps au-dessus de la EditItemTemplate est affiché avec deux ImageButtons. C'est CommandName = "Update"
et les autres "Annuler".
Mon problème, c'est que le clic sur la mise à Jour ImageButton posts en arrière, mais ni l'RowCommand ni RowUpdating événements se déclencher.
J'ai mis la condition d'attributs dans le contrôle GridView tag. (Remarque, dans le contrôle gridview la EnableViewState="False"
- si je l'ai mis à True-je obtenir la norme
"Échec du chargement de viewstate. Le contrôle de l'arbre..." etc. d'erreur)
Une chose étrange que j'ai remarqué qui me fait penser que c'est un état d'affichage problème est que si je change la CommandName de la mise à Jour bouton "Modifier" que la publication de l'événement est capturé dans le RowCommand événement...
Toutes les suggestions sont les bienvenues. Merci.
Blast! Je viens de me souvenir que j'ai besoin de la TemplateField solution que j'ai aussi une Insertion de ligne dans le pied de page, et en exiger le FooterTemplate pour contenir un ImageButton... tirant sur mes cheveux!! S'il vous plaît ignorer l'auto-réponse ci-dessous, si elle n'a pas été supprimée.
OriginalL'auteur Sean | 2009-06-08
Vous devez vous connecter pour publier un commentaire.
Comme l'a noté l'Asem et Ron, l'ajout de la CausesValidation="false" attribut à la CommandField le problème est résolu.
La raison en est que j'ai eu quelques autres contrôles de validation sur la page et sur le contrôle GridView mise à jour de la page est tir les autres contrôles de validation, donc je pense qu'il est préférable de définir un ValidationSummary propriété.
OriginalL'auteur Michael Av
J'ai eu cette même situation où mon bouton "Modifier" était à l'origine d'autres validations (quoique caché les pop-up) pour exécuter derrière la scène.
De lire les solutions que j'ai été à la recherche pour le standard
CausesValidation="false"
propriété pour résoudre le problème. Je n'étais pas en mesure de localiser ce domaine, car il me semble que si j'ai été en utilisantAutoGenerateEditButton="True"
pour ajouter mes boutons d'édition pour le contrôle gridview.Ma SOLUTION était que de la suivre et j'espère que cela vous aider à économiser un temps précieux aussi bien.
Ensemble
AutoGenerateEditButton="False"
de cette façon, vous pouvez ajouter ce champ par le Code ASP.Utiliser le code ci-dessous pour ajouter le bouton "Modifier" du champ à votre gridView code comme suit.
Si la validation a été le problème, vous devriez maintenant être en mesure de voir votre mise à Jour du module de tir comme axpected.
OriginalL'auteur Everel Morris
Ensemble de la GridView propriété EnableViewState de vrai.
OriginalL'auteur Tushar
Sean,
Je comprends que vous avez la réponse maintenant, mais pour de futures références, vous devez créer un addhandler et un délégué de faire ce que tu voulais faire. J'ai mal compris la question. Mais voici ce que vous feriez si vous choisissez de ne pas utiliser un champ de commande.
//C'est dans pageload
//rowcreated
//alors vous devez créer un imageclickeventhandler délégué
Pas de problème Sean! Espérons que cette aide!
OriginalL'auteur Eric
J'ai enlevé le maître de la page et de laisser la page qui contient le GridView hériter de la Page, et cela a fonctionné. Quelque chose dans mon héritage de la pile (ou quelque chose dans le MS contrôles) ne fonctionnait pas comme je l'avais mis en place.
OriginalL'auteur Sean
Cela a réglé le problème pour moi:
OriginalL'auteur
si vous modifiez le nom de la commande "mettre à jour", vous aurez à gérer la mise à jour en rowcommand qui ne devrait pas être un problème de droit?
Découvrez cette Question que j'avais posée. Il peut aider à
Ajouté
Quelque chose que vous pourriez faire est de changer le commandname à ce que vous souhaitez et de les traiter dans Rowcommand. La base de données de mises à jour/insère manuellement sur rowcommand.
ok. Accrocher. Je vais vous aider.
Merci Eric - j'ai pensé que j'avais une solution (voir la "réponse" ci-dessous), mais j'ai réalisé que je besoin de la TemplateFields au lieu de la CommandField que j'ai une ligne d'insertion dans le pied de page. S'il vous plaît ignorer la réponse ci-dessous...
OriginalL'auteur Eric
Il a été mentionné sur cette page, en d'autres réponses que l'erreur est provoquée par la validation. La raison en est qu'il y a des validateurs sur la page, qui très probablement ne s'applique pas à la ligne en cours d'édition, et pour quelque raison que ce soit, ils ne sont pas satisfaits. Si vous voulez des validateurs de travail pour votre actuellement le montage de la ligne, vous ne voulez pas définir de CasuesValidation à faux... au Lieu de cela, vous voulez désactiver toute pertinence validateurs à l'exception de ceux que vous vous souciez de pour le but de la modification de cette ligne.
OriginalL'auteur dave
J'ai également le même problème dans un Gridview avec Modifier,mettre à jour,annuler. De modifier et d'Annuler l'événement me faire virer, mais jamais de mise à Jour de l'Événement. Puis finalement j'ai changer le CauseValidation à false pour la mise à Jour linkbuttion forme du Modèle d'Édition de champ. Il fonctionne étonnamment bien.
OriginalL'auteur Asem Ibohal
Si vous utilisez aucune fonction pour la récupération(de Liaison) l'affichage de la grille à partir de la base de données et l'appeler dans page_Load() événement, alors il peut causer ce problème. essayez d'appeler cette fonction dans page_LoadComplete() événement et il va fonctionner.
OriginalL'auteur Vivek Patel