У меня проблема с 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 - Все эти элементы управления находятся на тестовой странице, поэтому им ничто не мешает.