2009-12-31 4 views
0

J'utilise GM date Allez .. Mon code est le suivant:GMDatePicker problème Format

<cc1:GMDatePicker ID="DatePicker" AutoPosition="false" runat="server" CalendarTheme="Blue" 
Style="z-index: 252; left: 0px; position: absolute; top: 0px" DateFormat="dd/MM/yyyy" 
TodayButtonText=""> 

J'ai donné le format de date comme mentionné ci-dessus. Mais, il ne prend pas dans ce format. Il prend uniquement dans ce format MM/jj/aaaa. Lorsque je sauvegarde, il prend la date actuelle .. Si je donne au format MM/jj/aaaa, il prend la valeur de la date correcte ..

Comment surmonter ce problème?

+0

Juste d'intérêt avez-vous une copie du code source à GMDatePicker. J'essaie de trouver une copie. –

Répondre

1

ce contrôle a un bogue dans la méthode get de la propriété Date, chaque fois que la date est lue dans la zone de texte, la valeur du format de date n'est pas prise en compte. Voici une ligne exacte de la méthode get de propriété Date qui jette une exception:

DateTime time = DateTime.Parse(this.dateTextBox.Text, this.Culture); 

la raison pour laquelle vous obtenez une date actuelle est que les caches de contrôle toutes les exceptions sont des rendements date dans le cas où l'un est survenu.

Alors que faites-vous, en plus de trouver un autre contrôle ou demander au fournisseur de réparer celui-ci. La solution de contournement consiste à obtenir la date directement à partir de la zone de texte de contrôle sans utiliser sa propriété Date par réflexion et l'analyser. Voici un exemple de la façon dont vous pouvez le faire:

TextBox textBox = (TextBox)DatePicker.GetType().InvokeMember("dateTextBox", 
    BindingFlags.GetField | BindingFlags.Instance | BindingFlags.NonPublic, 
    null, DatePicker, null); 
if (textBox != null) 
{ 
    DateTimeFormatInfo format = (new CultureInfo(DatePicker.Culture.Name)).DateTimeFormat; 
    format.ShortDatePattern = DatePicker.DateFormat; 
    DateTime date = DateTime.Parse(textBox.Text, format); 
    Console.WriteLine(date.ToString()); 
} 

espérons que cette aide, ce qui

+0

Salut! Merci pour votre réponse .. Quand je débogue, il obtient la valeur correctement. Mais, à la dernière ligne lors de l'analyse, comme d'habitude, il reprend le format MM/jj/aaaa. "DateTime date = DateTime.Parse (textBox.Text, format)" Wat à faire? – Nila

+0

Ok .. Ca marche. Je vous remercie!!!! – Nila

Questions connexes