【问题标题】:AJAX Calendar Extender showing wrong dateAJAX 日历扩展器显示错误的日期
【发布时间】:2013-02-11 15:33:18
【问题描述】:

我有一个带有母版页的 aspx 页面。母版页包含 asp:ScriptManager。 aspx 页面的 ajaxToolkit:CalendarExtender 已退出更改文本框中日期的月份。加载页面时,与扩展器关联的文本框会填充来自数据库的信息。

这个 aspx 页面是几个月前创建的,并且运行良好。在更新过程中,我不得不在其末尾添加几个额外的 div,日历扩展器继续按预期工作了几个星期。昨天,当在日历控件中选择了不同的日期时,它决定不更改文本框中的月份。我所做的更改与扩展器或它所在的区域无关,所以我完全不知道是什么导致了问题。

<%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false"
Inherits="Quote.Edit" Title="Quote - Edit Information"
CodeBehind="Rate.aspx.vb" %>
<%@ Register Src="TabsControl.ascx" TagName="TabsControl" TagPrefix="uc1" %>

<asp:Content>...several other Contents here...</Content>
<asp:Content ID="Content4" ContentPlaceHolderID="MainPlaceHolder" runat="server">
    <asp:UpdatePanel ID="upContent" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="False">
        <ContentTemplate>
            <div>...several other divs here...</div>
            <div class="other=container">
                <asp:UpdatePanel ID="upEdit" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="False">
                    <ContentTemplate>
                        <div id="EditArea" runat="server">
                            <table class="general">
                                <tr>...several other rows here...</tr>
                                <tr><td colspan="2>
                                    <asp:Label id="lblEffDate" runat="server" AssociatedControlID="txtEffDate" Text="Effective Date" />
                                    <div>
                                        <asp:Textbox ID="txtEffDate" runat="server" Width="100" CssClass="notfirst" AutoPostBack="true" />
                                        <asp:Image ID="imgCal" runat="server" ImageUrl="images/Calendar_scheduleHS.png" CssClass="top3" />
                                    </div>
                                    <ajaxToolkit: CalendarExtender ID="ceEffDate" PopupButtonID="imgCal" TargetControlID="txtEffDate" Animated="false" runat="server" Format="mm/dd/yyyy" />
                                    <ajaxToolkit: MaskedEditExtender ID="meEffDate" runat="server" MaskType="Date" TargetControlID="txtEffDate" Mask="99/99/9999" />
                                </td></tr>
                                <tr>...several other rows here...</tr>
                            </table>
                        </div>
                        <div>...several other divs here...</div>
                    </ContentTemplate>
                </UpdatePanel>
            </div>      
        </ContentTemplate>
    </UpdatePanel>
</Content>

在此之前和之后有大量代码,但这是日期控件所在的区域。

唯一涉及的代码隐藏是从数据库中获取信息并将其加载到文本框。当您使用日历扩展器更改日期时,文本框中的月份保持不变(日期和年份会改变。)

【问题讨论】:

    标签: asp.net calendarextender


    【解决方案1】:

    您的日期格式错误。 'M' 应该是这样的月份的大写:Format="MM/dd/yyyy"

    <ajaxToolkit: CalendarExtender ID="ceEffDate" PopupButtonID="imgCal" TargetControlID="txtEffDate" Animated="false" runat="server" Format="MM/dd/yyyy" />
    

    【讨论】:

    • 做到了。奇怪,因为我没有在那里做任何工作。我会追查肇事者!哈哈
    • 哇 - 多么奇怪的错误/功能。我试图从 2015 年 1 月的页面中选择上个月(即 2014 年 12 月 28 日),日期将显示为 2014 年 1 月 28 日。将格式从 dd/mm/yyyy 更改为 dd/MM/yyyy 解决了这个问题。非常感谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    • 2011-11-11
    相关资源
    最近更新 更多