Problem mit dynamisch laden ein Benutzer-Steuerelement auf die Schaltfläche klicken

Ich habe eine Seite, in der ich bin laden ein user control dynamisch, wie folgt:

Standard.aspx:

    <cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
    </cc1:ToolkitScriptManager>

    <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>

Standard.aspx.cs:

    protected void Page_Load(object sender, EventArgs e)
    {
        var ctrl = LoadControl("~/UserCtrl1.ascx");
        ctrl.ID = "ucUserCtrl1";
        PlaceHolder1.Controls.Add(ctrl);
    }

Unten ist der code für UserCtrl1.ascx

<asp:Label ID="Label1" runat="server"></asp:Label>
<asp:Button ID="Button1" runat="server" Text="Button1" OnClick="Button1_Click" />
<br />
<asp:PlaceHolder ID="PlaceHolder2" runat="server"></asp:PlaceHolder>

Ich bin dynamisch laden ein anderer Benutzer die Kontrolle, wenn der Button1 geklickt wird

UserCtrl1.ascx.cs

    protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = "UserControl - 1 button clicked!";

        var ctrl = LoadControl("~/UserCtrl2.ascx");
        ctrl.ID = "ucUserCtrl2";
        PlaceHolder2.Controls.Add(ctrl);
    }

Unten ist das markup für UserCtrl2.ascx

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:Label ID="Label2" runat="server"></asp:Label>
        <asp:Button ID="Button2" runat="server" Text="Button2" OnClick="Button2_Click" />
    </ContentTemplate>
</asp:UpdatePanel>

UserCtrl2.ascx.cs

    protected void Button2_Click(object sender, EventArgs e)
    {
        Label2.Text = "UserControl - 2 button clicked!";
    }

Nachdem die Seite geladen, wenn ich auf den Button1 in UserCtrl1 das click-Ereignis ausgelöst, und ich bin in der Lage, um zu sehen, das Label1-text. Es ist auch richtig, lädt der UserCtrl2, aber wenn ich auf den Button2 in UserCtrl2 das click-Ereignis dosent Feuer und noch schlimmer, wenn ich auf den Button2 zweimal die UserCtrl2 Kontrolle dissappears von der Seite. Wie kann ich dieses Problem beheben?

InformationsquelleAutor Kumar | 2010-04-05
Schreibe einen Kommentar