2010-10-20 20 views
1

J'ai un Gridview où je peux modifier la partie de temps d'un champ DateTime. La méthode de mise à jour fonctionne correctement, sauf pour une chose:Mise à jour Gridview modification de mon paramètre de mise à jour?

Le champ doit uniquement autoriser la partie heure, par exemple 08:23:09 mais sur la base de données, il l'enregistre en tant que DateTime complet, par exemple 10/18/2010 08:23:09 AM. Le problème est que lors de l'édition, au lieu d'ajouter la partie Date existante, elle ajoute la partie Date actuelle. Donc, si je modifie l'élément du dernier exemple en 08:25:09 au lieu de l'ajouter comme 10/18/2010 08:25:09 AM, il l'ajoute comme 10/20/2010 08:25:09 AM ce qui est évidemment un comportement indésirable.

Voilà comment je fais la mise à jour:

protected void grvOutHour_RowUpdating(object sender, GridViewUpdateEventArgs e) 
    { 
     GridView grvOutHour = (GridView)this.grvReport.Rows[grvReport.EditIndex].FindControl("grvOutHour"); 
     TextBox txtBox = (TextBox) grvOutHour.Rows[e.RowIndex].FindControl("txtEditOutHour"); 
     string outHour = this.Source[grvReport.EditIndex].EntryDate + " " + txtBox.Text; 
     odsOutHours.UpdateParameters["OutHour"].DefaultValue = outHour; 
    } 

Jusqu'à ce point, la valeur de outHour est celle souhaitée, par exemple 10/18/2010 08:25:09 AM mais dès que la valeur est passée à ma méthode de mise à jour réelle:

public static void UpdateHour(int pEntryID, DateTime InHour, DateTime OutHour) 
    { 
     Hour hour = HoursDataMng.GetEntity(pEntryID, InHour.Date, InHour.TimeOfDay); 
     if (hour == null) 
      return; 
     else 
     { 
      hour.OutHour = OutHour; 
      HoursDataMng.SubmitChanges(); 
     } 
    } 

Je peux voir que OutHour a changé à 10/20/2010 08:25:09 AM

que se passe-t-il?

Répondre

0

Enregistrer l'ancienne date dans HiddenField puis dans la méthode Update obtenir la nouvelle valeur de l'heure et le remplacer dans l'ancien DateTime (From HiddenField) puis passer le résultat à DB Parameter.

+0

Oui, j'utilise actuellement quelque chose de similaire à une solution de contournement, mais je me demande pourquoi la date est en cours de modification en premier lieu. Merci quand même! –