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