2010-10-29 3 views
0

J'ai un GridView ASP.Net, avec deux colonnes ("ID" et "nom"). La colonne de nom est modifiable via un < asp: TextBox >. Ce que je veux faire, c'est que la grille déclenche son événement de mise à jour lorsque l'utilisateur clique loin d'une cellule modifiable.Comment effectuer une publication ASP.Net GridView sur un événement onBlur?

Je sais que je peux attacher un gestionnaire d'événement onBlur à la TextBox pour récupérer la valeur lorsque l'utilisateur clique loin. Cependant, je ne sais pas comment déclencher l'événement de mise à jour de GridView par programmation via JavaScript. Aucune suggestion?

+0

Voulez-vous vraiment exécuter la page sur un cycle de vie complet pour mettre à jour une seule valeur? Je voterais pour un webservice simple qui peut prendre une chaîne et un ID comme argument et mettre à jour l'enregistrement approprié. – R0MANARMY

Répondre

1

Sur votre TextBox mis AutoPostBack="True". Cela provoquera une publication lorsque l'événement client change se déclenche, ce qui est probablement ce que vous voulez plutôt que blur. Attachez un gestionnaire TextChanged à la zone de texte et vous pouvez appeler votre méthode de mise à jour de grille à partir de là.

vous pouvez obtenir l'index de ligne pour la zone de texte qui a déclenché l'événement comme celui-ci:

protected void TextBox2_TextChanged(object sender, EventArgs e) 
{ 
    GridViewRow gridRow = ((GridViewRow)((TextBox)sender).NamingContainer); 
    Console.WriteLine(gridRow.RowIndex); 
} 
+0

C'était exactement ce que je cherchais. Au début, j'étais inquiet que l'autopostback soit post-back sur chaque frappe, mais MSDN m'a assuré que ce n'était pas le cas. – quanticle

0

Vous pouvez appeler la méthode submit pour votre objet Form à partir de l'événement onBlur.

myForm.submit(); 
0

Vous pouvez définir autopostback = « true » sur votre zone de texte et dans la Codebehind enregistrer le nouveau valuein le gestionnaire d'événements.

Questions connexes