【问题标题】:AjaxControlToolkit CalendarExtender - Wrong Date/Time Bug?AjaxControlToolkit CalendarExtender - 错误的日期/时间错误?
【发布时间】:2011-11-16 13:54:21
【问题描述】:

我遇到了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 PM”。但是,当页面返回时,文本框显示“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" 

页面以正确的值加载 - 现在唯一的问题是,当我实际单击日历 ImageButton 并使用 CalendarExtender 时,它会将 DateTime 以“November/06/2011 12:00:00”的格式放入 TextBox 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 是否存在某种我不知道的错误?

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

【问题讨论】:

  • 奇怪,我试过了,对我来说效果很好......

标签: asp.net ajaxcontroltoolkit


【解决方案1】:

我在我的机器上尝试了相同的设置,它对我来说效果很好。可能是您在可能遵循不同时区的不同服务器/机器上测试页面。确保您在物理机器上本地运行代码。检查并告诉我们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-17
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    • 2016-09-16
    • 1970-01-01
    • 2013-05-03
    • 2018-06-18
    相关资源
    最近更新 更多