ObjectDataSource bug.

Marco Leoncini

di Marco Leoncini, in asp.net, mercoledì 15 novembre 2006 ore 14.18

è 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);
}
}
}

Commenti

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.



Segnala su: Facebook MSDN Social Twitter Segnalo Wikio Diggita Technorati Stumbleupon Google Yahoo FriendFeed Delicious Furl

Nella stessa categoria
I più letti del mese
TagCloud
BLOG INFO
  • 242 post, 108 commenti, 23 trackback
  • Feed blog e contenuti tecnici: RSS
  • Feed blog: RSS Atom
IN EVIDENZA