Расширитель календаря Ajax недоступен, несмотря на диспетчер сценариев?

#asp.net #html #ajax #visual-studio

#asp.net #HTML #ajax #visual-studio

Вопрос:

У меня есть расширитель календаря на одной странице, и он отлично работает. Помещен в панель с менеджером скриптов, проблем нет. Однако на другой странице aspx, использующей тот же формат, несмотря на то, что мой диспетчер сценариев находится в том же положении, расширитель календаря недоступен. В сообщении об ошибке сообщается, что расширитель календаря не является известным элементом. Почему? Приведенный ниже код для обоих экземпляров.

Хорошая страница:

 <asp:Panel ID="Panel1" runat="server" BorderWidth="4px" BorderStyle="Solid" CssClass="myPanelCss" Width="700px">        
 <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
    <asp:Table runat="server" Width="700px">
        <asp:TableRow VerticalAlign="Top">
            <asp:TableCell>`<asp:TextBox ID="TbEffectiveDate" runat="server"></asp:TextBox>
                <asp:CalendarExtender ID="TbEffectiveDate_CalendarExtender" runat="server" 
                    TargetControlID="TbEffectiveDate">
                </asp:CalendarExtender>`
  

Плохая страница:

 <asp:Panel ID="SubPanel" CssClass="myPanelCss" BorderWidth= "4px" BorderStyle="Solid"       runat="server" Width="593px">        
        <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>            
        <asp:Table runat="server" HorizontalAlign="Center" Width="567px"> 
           <asp:TableRow>
                <asp:TableCell><asp:TextBox ID="TbEffectDate" runat="server"></asp:TextBox>
                    <asp:CalendarExtender ID="TbEffectDate_CalendarExtender" runat="server" 
                    TargetControlID="TbEffectDate">
                </asp:CalendarExtender>
  

Комментарии:

1. Быстрый ответ: мне пришлось использовать ToolkitScriptManager на второй странице. Теперь расширитель работает нормально. Мой вопрос: почему не на первой странице?

Ответ №1:

Я думаю, что вы забыли объявить инструментарий вверху страницы

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

и лучше объявить это как

 <ajaxToolkit:CalendarExtender 
  

Комментарии:

1. Возможно, лучше как <AjaxToolkit: … , но полностью функциональный, как сейчас, с scriptmanagers, объявленными в их соответствующих панелях. Теперь просто любопытно, потому что при, казалось бы, идентичных условиях одному понадобился toolkit manager, а другому нет.