Comment éviter RowDataBound quand GridView est édité?
Actuellement, j'ai le code suivant dans la RowDataBound:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Label groupID = (Label)e.Row.FindControl("idgroup");
LinkButton myLink = (LinkButton)e.Row.FindControl("groupLink");
myLink.Attributes.Add("rel", groupID.Text);
}
}
Cependant, lorsque je clique sur le lien Modifier, il tente d'exécuter le code et renvoie une erreur. Donc, comment puis-je exécuter ce code UNIQUEMENT lorsque le contrôle GridView est en mode de lecture? Mais pas lors de l'édition de...
OriginalL'auteur aleafonso | 2011-09-14
Vous devez vous connecter pour publier un commentaire.
Ici est de savoir comment le faire! Il n'exécutera le code sur les lignes (lors de la lecture ou en mode d'édition) à l'exception de la ligne qui est en cours de modification!!!
OriginalL'auteur aleafonso
vous pouvez ajouter une case comme ceci:
pouvez-vous débogage et de vérifier d'autres propriétés de l'e ou e.Ligne d'objets pour voir si vous pouvez détecter l'état de modification de la ligne et d'agir en conséquence? 🙂
Merci pour les conseils de l'homme! Je viens de résoudre le débogage et de la recherche é.Ligne d'objet comme vous l'avez mentionné. Je vais le publier dès que stackoverflow me permet de répondre à ma propre question. Cheers!
Vous pouvez modifier votre question de mettre les résultats à la base.
OriginalL'auteur Davide Piras
D'ajouter une case pour
e.Row.RowState
:ce que u veux dire par code n'est pas exécuté??
N'a pas été exécuté...
+1. Comme indiqué dans le commentaire de code, ce bloc s'exécute lorsque la ligne est en mode édition. La vérification de la face ("n'est pas en mode d'édition") peut être fait soit en emballage de la déclaration avec "!()", changer ">" avec "==", ou par l'ajout d'un bloc autre (dans le cas où vous avez une utilisation pour le bloc if).
OriginalL'auteur Waqas
Davide réponse est presque correct.. Mais ce sera un échec pour les autres lignes. Ici est la bonne solution:
OriginalL'auteur Sameer
Dans votre gridview,
recherche pour OnrowDataBound événement qui aura comme OnrowDataBound="GridView1_RowDataBound" supprimer le code et désactiver le code ci-dessus.
OriginalL'auteur Narender