Простой ajax asp.net календарь не работает

Я сделал новый проект с одной страницей и ссылкой на AjaxControlToolkit.dll

Расширение календаря ниже не работает, что я сделал не так?

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>

    <form id="form1" runat="server">
    <div>    
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <ajaxToolkit:CalendarExtender runat="server" TargetControlID="TextBox1" CssClass="ClassName" Format="MMMM d, yyyy" />
    </div>
    </form>
</body>
</html>

7 ответов

Решение

Попробуйте использовать ScriptManager ajaxtoolkit вместо asp one.. все остальное выглядит хорошо

<ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" > </ajaxToolkit:ToolkitScriptManager>

Приведенный выше ответ является правильным; однако, это не сработало для меня. Вместо этого я попытался перетащить ToolkitScriptManager в мою форму, и он был представлен как

   "< 
, Это работало для меня тогда. Обратите внимание, что это был "asp.ToolkitScriptManager", а не "ajaxToolkit:ToolkitScriptManager". Возможно, это изменение версии Ajax Control Toolkit, которую я использую?

Нет, это то, что вы когда-либо устанавливали как tagPrefix, это может быть cc1 или asp или ajaxToolkit

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>

Относительно Ajax Control Toolkit 7.1213.0

Поскольку вы используете инструментарий управления ajax, вам нужно будет использовать ToolScriptManager, а не просто ScriptManager.

Перетащите ToolScriptManager или просто введите

<asp:ToolkitScriptManager runat="server"></asp:ToolkitScriptManager>

если не работает, укажите это в начале веб-страницы.

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

Вы можете использовать CalendarExtender сразу после целевого текстового поля.

<asp:TextBox runat="server" ID="txtDate1" />
<asp:CalendarExtender ID="txtDate1_CalendarExtender" runat="server" Enabled="True" TargetControlID="txtDate1">
</asp:CalendarExtender>

Если они не работают, вам следует отредактировать файл Web.config и добавить необходимые конфигурации. Добавьте конфигурации к элементам управления ajax, которые понадобятся вам для ссылки на другое руководство.

<httpHandlers>
                <remove path="*.asmx" verb="*"/>
                <add path="*.asmx" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
                <add path="*_AppService.axd" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
                <add path="ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
                <add path="CrystalImageHandler.aspx" verb="GET" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
                <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
            </httpHandlers>
    <system.web></system.web>

Поскольку на него уже дан ответ, но просто чтобы разработчики, столкнувшиеся с этой проблемой, СЕЙЧАС говорили о версии Обновление, октябрь 2015 года: теперь она поддерживается DevExpress.

Я обновил свой проект приложения VS 2013 Web Forms до ajax через Nuget
&
Я столкнулся с той же проблемой, не работает управление календарем, все код совершенен

Таким образом, решение, которое работало для меня, было:

1. Я сделал это:

2. Я установил его через этот новый установщик

3. Я создал новый проект в моем VS 2013

4. Перенес мой существующий код в этот проект и

это сработало!!

плюс,
нет <ajaxToolkit:ToolkitScriptManager Теперь вы должны использовать стандартный ScriptManager сейчас

Вздох ... Я знаю, что этот вопрос датирован, но в случае, если придут другие и эти решения не решат проблему, здесь есть что проверить. У нас есть устаревшее приложение веб-форм, которое я потратил большую часть утра на устранение неполадок, потому что элементы управления расширителем календаря просто перестали работать на определенной странице. Не было никаких исправлений или пакетов обновления, которые были запущены на сервере / локальном компьютере разработчика, а также не было изменений версии сборки Ajax и недавних изменений на странице.

Оказывается, сценарий запуска регистра при загрузке страницы имел в виду функцию JavaScript, которой больше не существовало во внешнем файле js, поэтому ошибка JavaScript при загрузке страницы остановила инициализацию / функциональность элемента управления ajax. Поэтому проверьте свои инструменты разработчика (Chrome кажется лучшим) на наличие ошибок JavaScript, которые могут помешать запуску других сценариев инициализации JavaScript для расширения календаря и тому подобного.

Другие вопросы по тегам