2011-01-27 3 views
0

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

<%@ 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. Может быть, я должен динамически создавать контроль по-разному?

+0

У меня нет конкретного ответа на это, но я могу сказать, что мой последний набег на попытку динамического добавления элементов управления на страницу - это кошмар представлений. Я закончил тем, что все элементы управления «предварительно загружены» на странице, а viewstate и visibility переключены, а не динамически добавляются и удаляются. Требуется ли динамическая нагрузка? – jbehren

ответ

0

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

Смежные вопросы