AjaxControlToolkit CalendarExtender - 错误的日期/时间错误?

问题描述 投票:4回答:1

我遇到了AjaxControlToolkit CalendarExtender的问题。让我解释一下我的页面设置。我在页面上有一个ASP TextBox,它应该保存一个事件的结束时间。时间必须采用“MM / dd / yyyy hh:mm:ss tt”格式(即“11/06/2011 11: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");
}

现在由于某种原因,我只能在2011年11月6日重现这个错误。但正如你在Page_Load上看到的那样,我将时间设置为“23:59:59”,即“晚上11:59:59” ”。然而,当页面返回时,文本框显示“11/06/2011 10:59:59 PM”而不是“11/06/2011 11:59:59 PM”

现在这里的事情变得奇怪了。如果我从页面中删除CalendarExtender一切正常,页面按预期加载TextBox中的正确值。如果我将CalendarExtender的FormatString更改为,那也很奇怪

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

页面加载了正确的值 - 这里唯一的问题是,当我实际点击我的Calendar ImageButton并使用CalendarExtender时,它会将DateTime以“November / 06/2011 12:00:00 AM”格式放入TextBox(但这是预期的)。

现在,如果我将后面的代码中的DateTime更改为

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

文本框将以“11/06/2011 09:59:59 PM”的形式返回,但应显示为“11/06/2011 10:59:59 PM”。

令我困惑的是CalendarExtender干扰我的TextBox控件的原因。它几乎就像日历延伸器的那些时间从1-24而不是0-23。是否有一些我不知道的CalendarExtender错误?

附: - 所有这些控件都在测试页面上,因此没有其他任何干扰它们。

asp.net ajaxcontroltoolkit
1个回答
0
投票

我在我的机器上尝试了相同的设置,它对我来说很好。可能是您在不同服务器/机器上测试页面的情况,该服务器/机器可能跟随不同的时区。确保在本地计算机上本地运行代码。检查并告诉我们。

© www.soinside.com 2019 - 2024. All rights reserved.