2009-12-31 1 views
0

Я использую GM Date Picker .. Мой код выглядит следующим образом:GMDatePicker проблема Формат

<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=""> 

Я дал Формат даты, как указано выше. Но это не принимает в этом формате. Он принимает только в этом формате MM/dd/YYYY. Когда я сохраняю, он принимает текущую дату. Если я даю в формате MM/dd/YYYY, он принимает правильное значение даты.

Как преодолеть эту проблему?

+0

Просто из интереса у вас есть копия исходного кода GMDatePicker. Я пытаюсь найти копию. –

ответ

1

Этот элемент управления имеет ошибку в методе get свойства Date, всякий раз, когда дата считывается из текстового поля, значение формата даты не учитывается. Вот точная строка методы GET Даты собственности, которая генерирует исключение:

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

причина, почему вы получаете текущую дату является то, что контроль кэширует все исключения являются возвратами произошедших текущей даты в случае, если один.

Так что вы делаете, помимо поиска другого контроля или просите продавца исправить это. Обходным путем было бы получить дату непосредственно из текстового поля элемента управления без использования его свойства Date через отражение и проанализировать его. Ниже приведен пример того, как можно это сделать:

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

надеюсь, что это помогает, считает

+0

Привет! Спасибо за ваш ответ. Когда я отлаживаю, он получает значение правильно. Но в последней строке при разборе, как обычно, он снова принимает формат MM/dd/YYYY. "DateTime date = DateTime.Parse (textBox.Text, format)" Ват делать? – Nila

+0

Хорошо .. Это работает. Спасибо!!!! – Nila

 Смежные вопросы

  • Нет связанных вопросов^_^