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?
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! –