2013-07-19 3 views
0

J'ai un champ "Date de mise à jour" dans un formulaire qui est rempli automatiquement avec la date du jour où la mise à jour est faite. J'ai un champ identique sous une autre forme.Mettre à jour le champ dans un autre formulaire

Comment puis-je mettre à jour le deuxième champ programatically dans l'autre table afin que whenver l'utilisateur clique sur la mise à jour sur la première table, la deuxième table updates.

Le premier champ "Date de mise à jour" est dans une vue DetailsView tandis que le second est dans un GridView. Jusqu'à présent, j'ai:

GridView1.SetEditRow(GridView1.Rows.Count - 1) 
    Dim datebox As TextBox = GridView1.FindControl("DateUpdatedBox1") 
    datebox.Text = DateTime.Now.ToString("dd-MMM-yyyy") 
    GridView1.UpdateRow(GridView1.Rows.Count - 1, False) 

dans le cadre d'un événement onItemUpdated pour le DetailsView. Cependant, cela ne fonctionne pas. J'obtiens une erreur "instance d'objet non définie sur une instance d'un objet" sur la 3ème ligne.

Des suggestions?

Répondre

0

Vous essayez de trouver un contrôle à l'intérieur un GridView.

Êtes-vous sûr qu'il est là? Parce que je m'y attendais soit en dehors de la GridView ou de plusieurs occurrences à l'intérieur.

Mise à jour après votre commentaire: Vous avez manqué mon point. Je pense que vous devez obtenir la ligne et trouver la zone de texte là:

foreach (GridViewRow row in yourgridview.Rows) 
     { 
      TextBox datebox = (TextBox)row.FindControl("DateUpdatedBox"); 
} 
+0

Il est définitivement là comme une zone de texte dans EditItemTemplate. Il existe une autre occurrence de ItemTemplate, mais celle-ci est une étiquette, ce qui ne devrait pas causer le problème. Je pense que mon problème était que je ne mettais pas le Gridview en mode Edit, donc il prenait le mauvais contrôle. Cependant, je ne suis pas sûr que ce code l'emporte non plus. – user2516794

+0

J'ai modifié l'extrait de code que vous avez offert un peu et il trouve maintenant le bon contrôle et le remplit avec la date. Cependant, la ligne est toujours en mode "edit" et je dois cliquer manuellement sur le bouton de mise à jour dans le Gridview. Est-il possible de valider automatiquement la mise à jour ou de cliquer sur le lien de codebehind sans action supplémentaire de l'utilisateur? – user2516794

Questions connexes