Ajax Toolkit Calendar Extender错误

时间:2017-08-29 17:25:28

标签: c# asp.net ajax web ajaxcontroltoolkit

我有一个asp.net网站部署到登台服务器和生产服务器。在我的临时服务器上,日历扩展程序正常工作。但是,它出现了一个空白日历,我的生产服务器上出现了java脚本错误。两者都具有相同的部署代码(减去Web配置中的连接字符串),相同版本的.NET以及相同版本的AjaxControlToolkit DLL。它抛出的java脚本错误有点奇怪,因为似乎没有像它表示的空值:“未捕获的TypeError:在Sys.Extended.UI.CalendarBehavior._parseTextValue中无法读取null的属性'getFullYear'。”

生产服务器: enter image description here

错误:

  ?

的ScriptResource.axd d = NISXSzp87hD3qcCkP6NEPuF9CcnK5I-ufPjsh34laJN_X0aVHxlrSCRTcuVNdBlHJPhDZIUvEREh5VBuThlsgo_BghBpg0ddHeQysAHm-fvIzsJbjZge0NiahMLqHuR00& T公司= ffffffff949e5296:1未捕获的类型错误:无法读取属性 '和getFullYear' 空的       在Sys.Extended.UI.CalendarBehavior._parseTextValue(?的ScriptResource.axd d = NISXSzp87hD3qcCkP6NEPuF9CcnK5I-ufPjsh34laJN_X0aVHxlrSCRTcuVNdBlHJPhDZIUvEREh5VBuThlsgo_BghBpg0ddHeQysAHm-fvIzsJbjZge0NiahMLqHuR00& T公司= ffffffff949e5296:1)       在Sys.Extended.UI.CalendarBehavior.get_selectedDate(?的ScriptResource.axd d = NISXSzp87hD3qcCkP6NEPuF9CcnK5I-ufPjsh34laJN_X0aVHxlrSCRTcuVNdBlHJPhDZIUvEREh5VBuThlsgo_BghBpg0ddHeQysAHm-fvIzsJbjZge0NiahMLqHuR00& T公司= ffffffff949e5296:1)       在Sys.Extended.UI.CalendarBehavior._getEffectiveVisibleDate(?的ScriptResource.axd d = NISXSzp87hD3qcCkP6NEPuF9CcnK5I-ufPjsh34laJN_X0aVHxlrSCRTcuVNdBlHJPhDZIUvEREh5VBuThlsgo_BghBpg0ddHeQysAHm-fvIzsJbjZge0NiahMLqHuR00& T公司= ffffffff949e5296:1)       在Sys.Extended.UI.CalendarBehavior._switchView(?的ScriptResource.axd d = NISXSzp87hD3qcCkP6NEPuF9CcnK5I-ufPjsh34laJN_X0aVHxlrSCRTcuVNdBlHJPhDZIUvEREh5VBuThlsgo_BghBpg0ddHeQysAHm-fvIzsJbjZge0NiahMLqHuR00& T公司= ffffffff949e5296:1)       在Sys.Extended.UI.CalendarBehavior.show(?的ScriptResource.axd d = NISXSzp87hD3qcCkP6NEPuF9CcnK5I-ufPjsh34laJN_X0aVHxlrSCRTcuVNdBlHJPhDZIUvEREh5VBuThlsgo_BghBpg0ddHeQysAHm-fvIzsJbjZge0NiahMLqHuR00& T公司= ffffffff949e5296:1)       在Sys.Extended.UI.CalendarBehavior._element_onfocus(?的ScriptResource.axd d = NISXSzp87hD3qcCkP6NEPuF9CcnK5I-ufPjsh34laJN_X0aVHxlrSCRTcuVNdBlHJPhDZIUvEREh5VBuThlsgo_BghBpg0ddHeQysAHm-fvIzsJbjZge0NiahMLqHuR00& T公司= ffffffff949e5296:1)       在HTMLInputElement。 (MicrosoftAjax.js:6)       在HTMLInputElement.b(MicrosoftAjax.js:6)

分段: enter image description here

任何可能导致此问题的想法?我的猜测是某种类型的版本不匹配,但我似乎无法找到一个。如果需要其他信息,请与我们联系。

更新: 我已更新到AjaxControlToolkit 17.1.1并仍然在我的生产服务器上得到相同的错误。 enter image description here

3 个答案:

答案 0 :(得分:1)

看起来你正在使用v17.1.0,它有这个错误:https://github.com/DevExpress/AjaxControlToolkit/issues/337

尝试更新最新的v17.1.1NuGet package),错误应该消失。

答案 1 :(得分:1)

我遇到了这个问题。 我的建议: 您可以将CalendarExtender的format属性修改为在文本框中匹配日期格式。

错:

<asp:TextBox ID="tbxValidFrom" CssClass="form-input" runat="server" ReadOnly="True" TabIndex="2" Text="2017.08.03." />    
<ajaxToolkit:CalendarExtender runat="server" ID="ceValidFrom" TargetControlID="tbxValidFrom" ClearTime="True" FirstDayOfWeek="Monday" PopupPosition="BottomRight" Format="yyyy.MM.dd" Enabled="True" />

Error: Cannot read property 'getFullYear' of null

解决方案:

<asp:TextBox ID="tbxValidFrom" CssClass="form-input" runat="server" ReadOnly="True" TabIndex="2" Text="2017.08.03." /> 
<ajaxToolkit:CalendarExtender runat="server" ID="ceValidFrom" TargetControlID="tbxValidFrom" ClearTime="True" FirstDayOfWeek="Monday" PopupPosition="BottomRight" Format="yyyy.MM.dd." Enabled="True" />

It's working

答案 2 :(得分:0)

我也遇到了同样的例外,即输入错误的日期,例如:2019-99-01。 AjaxToolKit 17.1.1.0。 解决方法是重新编写错误的函数:

    Sys.Extended.UI.CalendarBehavior.prototype._parseTextValue = function (text) {
        // Converts a text value from the textbox into a date

        var value = null;
        if (text) {
            value = Date.parseLocale(text, this.get_format());
            if (value == null) value = new Date();  // fix: (the calendar wants the date in the associated textbox, but its invalid: 2019-99-01)

            // Initial code: value is null, un-caught exception
                //if (value.getFullYear() < 100) 
                //    value.setYear(value.getFullYear());
        }
        if (isNaN(value)) {
            value = null;
        }
        return value;
    };

在我的网站js脚本的开头。