AjaxControlToolkit CalendarExtender - Неправильная ошибка даты / времени? - PullRequest
4 голосов
/ 16 ноября 2011

У меня проблема с AjaxControlToolkit CalendarExtender.Позвольте мне объяснить настройки моей страницы.У меня есть ASP TextBox на странице, которая должна содержать время окончания события.Время должно быть в формате «ММ / дд / гггг чч: мм: сс тт» (т. Е. «06.11.2011 23:59:59 PM»).

Вот как выглядит макет страницы:

Ссылка на AjaxControlToolkit в верхней части страницы.

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" 
             TagPrefix="ajax" %>

Соответствующая разметка теластраница:

<asp:Label ID="_lblEventEndTime" runat="server" Text="End Time:" />
<asp:TextBox ID="_txtEventEndTime" runat="server" />  
<asp:ImageButton ID="_imgbtnEventEndTime" runat="server" 
                 ImageUrl="~/Images/Calendar.png"/>
<ajax:CalendarExtender ID="_cldrextEndDate" runat="server" 
                       CssClass="CalendarTheme" 
                       PopupButtonID="_imgbtnEventEndTime" 
                       TargetControlID="_txtEventEndTime" 
                       Format="MM/dd/yyyy hh:mm:ss tt" />   

И код C # позади:

protected void Page_Load(object sender, EventArgs e)
{
    DateTime nov6 = new DateTime(2011, 11, 6, 23, 59, 59);
    _txtEventEndTime.Text = nov6.ToString("MM/dd/yyyy hh:mm:ss tt");
}

По какой-то причине мне удалось воспроизвести эту ошибку только 6 ноября 2011 ,Но, как вы можете видеть на странице Page_Load, я устанавливаю время «23:59:59», то есть «11:59:59 PM».Однако, когда страница возвращается, текстовое поле говорит «06.11.2011 10 : 59: 59 PM» вместо «11/06/2011 11 : 59: 59 PM»

Теперь вот, где все становится странным.Если я удаляю CalendarExtender со страницы, все работает нормально, и страница загружается, как ожидается, с правильным значением в TextBox.Что также странно, если я изменю FormatString CalendarExtender на

Format="MMMM/dd/yyyy hh:mm:ss tt" 

, страница загружается с правильным значением - единственная проблема здесь сейчас, когда я на самом деле нажимаю кнопку Calendar ImageButton и использую CalendarExtender, это будетпоместите DateTime в TextBox в формате «Ноябрь / 06/2011 12:00:00 AM» (но это ожидается).

Теперь, если я изменю DateTime в коде на

DateTime nov6 = new DateTime(2011, 11, 6, 22, 59, 59);

Текстовое поле вернется как «11/06/2011 09 : 59: 59 PM», но должно читаться «11/06/2011 10 : 59:59 вечера ".

Что меня смущает, так это то, что CalendarExtender мешает моему элементу управления TextBox.Похоже, что в календаре есть часы, которые идут с 1-24 вместо 0-23.Есть ли какая-то ошибка в CalendarExtender, о которой я не знаю?

PS - Все эти элементы управления находятся на тестовой странице, поэтому им ничто не мешает.

1 Ответ

0 голосов
/ 06 ноября 2013

Я попробовал те же настройки на моей машине, и у меня все работало нормально. Возможно, вы тестируете страницу на другом сервере / компьютере, который, вероятно, следует другому часовому поясу. Убедитесь, что вы выполняете код локально на своей физической машине. Проверьте и дайте нам знать.

...