0
私は、include ajaxコントロール - CalendarExtenderを使用して簡単なユーザーコントロールを持っています。このコントロールのPage_Loadイベントで動的に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>
私は、コードを持っている - ちょうどカレンダーからラベル日に示します:これはコードです
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イベントのコード場所を上回ると、すべてがOKです。なぜPage_Initで動作し、Page_Loadでは動作しないのか説明できますか?たぶん、別の方法でコントロールを動的に作成する必要がありますか?
私はこれに関する具体的な答えはありませんが、私は最近、ページにコントロールを動的に追加しようとする試みは、viewstateの悪夢であることを伝えることができます。私は、ビューステートと可視性を動的に追加したり削除したりするのではなく、ページにすべてのコントロールを「プリロード」させることになりました。動的ローディングは要件ですか? – jbehren