Динамически создать пользовательский элемент управления AJAX не работает - PullRequest
0 голосов
/ 27 января 2011

У меня есть простой пользовательский контроль с включенным контролем ajax - CalendarExtender. Это код:

<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, 
PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI" TagPrefix="asp" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" 
TagPrefix="cc1" 
%><br />
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
  <ContentTemplate>
    <asp:TextBox ID="TextBox2" runat="server" AutoPostBack="true"></asp:TextBox>
    <cc1:CalendarExtender ID="CalendarExtender1" runat="server" Format="yyyy-MM-dd" 
    TargetControlID="TextBox2">
    </cc1:CalendarExtender><br /><br />
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
  </ContentTemplate>
</asp:UpdatePanel>  

На событии Page_Load для этого элемента управления у меня есть код - просто показать дату на этикетке из календаря:

protected void Page_Load(object sender, EventArgs e)
{
    Label1.Text = TextBox2.Text;
}  

Сначала я пытаюсь динамически создать этот элемент управления в событии Page_Load для моей веб-формы:

protected void Page_Load(object sender, EventArgs e)
{
  Controls_MySimpleControl datap = LoadControl("~/Controls/MySimpleControl.ascx") as 
  Controls_MySimpleControl;
  Panel1.Controls.Add(datap);
}  

Вышеуказанный код не работает (добавлен пользовательский элемент управления, и страница работает, но выбрать дату в календаре не отображается в метке). Но когда я выше кода помещаю в событие Page_Init, все в порядке. Не могли бы вы объяснить, почему он работает в Page_Init, и не работает в Page_Load. Может быть, я должен динамически создавать управление по-другому?

1 Ответ

0 голосов
/ 01 февраля 2011

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

...