è un bug noto, l'ObjectDataSorce non converte correttamente in tipo sting in DateTime, ne aveva parlato Andrea Boschin quà, avevo letto e incamerato.
sono passati i mesi tutto filava tranquillo, poi un giono appare sul forum questa domanda, i miei poveri neuroni relazionali, probabilmente non avevano assegnato chiavi univoche per i ricordi, non ricodavo nemmeno di ricordare.
quindi mi sono reinventato la ruota, ecco un altra soluzione alternativa al bug, che sonsiste nel creare una BoundFied personalizzata dove eseguito l'ovveride del metodo ExtractValuesFromCell, recuperato il valore, questo verrà parserizzato e inserito nel dictionary così da non rendere necessario l'intervento del ODS per la conversione.
public class MyDateTimeControlField : BoundField
{
public MyDateTimeControlField() { }
public override void ExtractValuesFromCell(IOrderedDictionary dictionary, DataControlFieldCell cell, DataControlRowState rowState, bool includeReadOnly)
{
Control _control = null;
string _dataField = this.DataField;
DateTime _date = DateTime.MinValue;
if (cell.Controls.Count > 0)
{
_control = cell.Controls[0];
TextBox _textBox = _control as TextBox;
if (_textBox != null)
{
try
{
_date = DateTime.Parse(_textBox.Text, CultureInfo.CurrentCulture.DateTimeFormat);
}
catch{}
}
}
if (dictionary.Contains(_dataField))
{
dictionary[_dataField] = _date;
}
else
{
dictionary.Add(_dataField, _date);
}
}
}
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Modificare il controllo TreeView, il 2 dicembre 2008 alle 19:27
- Perfezioniamo il ProfileDataSorce, il 13 ottobre 2008 alle 11:14
- Un DataSource per il Profile, il 10 ottobre 2008 alle 15:06
- TrueSpace 7 gratuito, il 24 luglio 2008 alle 10:59
- adesso dico la mia sull'Iphone, il 22 luglio 2008 alle 10:33
- Come tutto ebbe inizio, il 21 luglio 2008 alle 09:22