Warum verschwinden dynamisch erstellte Benutzersteuerelemente, wenn die Steuerelemente keine vollständigen Postbacks ausführen?

Nach meinem derzeitigen Verständnis gibt es bei einem UpdatePanel-Steuerelement kein vollständiges Postback. Wenn ich daher benutzerdefinierte Benutzersteuerelemente dynamisch hinzufüge und sie UpdatePanels haben, die in ihrem Code aktualisiert werden, sollten sie nicht von der Seite verschwinden, in die sie geladen werden, oder? Scheinbar nicht. Ich habe ein einfaches Projekt zum Testen erstellt und trotzdem verschwinden meine dynamischen Steuerelemente beim Klicken, obwohl sie kein vollständiges Postback auslösen sollten. Ich habe eine Aspx-Seite, die die Steuerelemente lädt:

<code><%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TESTmultipleScriptManagerControls.aspx.cs" Inherits="myPlayground.TESTmultipleScriptManagerControls" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>

    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>

    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
    <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />

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

</div>
</form>
</body>
</html>
</code>

Mit dem folgenden Code dahinter:

<code>protected void Button1_Click(object sender, EventArgs e)
    {

        TESTcontrol1 temp = LoadControl("TESTcontrol1.ascx") as TESTcontrol1;
        PlaceHolder1.Controls.Add(temp);
        TESTcontrol1 temp2 = LoadControl("TESTcontrol1.ascx") as TESTcontrol1;
        PlaceHolder1.Controls.Add(temp2);

    }
</code>

Und eine einfache Benutzersteuerung:

<code><%@ Control Language="C#" AutoEventWireup="true" CodeBehind="TESTcontrol1.ascx.cs" Inherits="myPlayground.TESTcontrol1" %>
<asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server">
</asp:ScriptManagerProxy>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">

<ContentTemplate>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</code>

Mit dem folgenden Code dahinter:

<code>protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = System.DateTime.Now.ToString();
    }
</code>

Irgendwelche Ideen, warum die Steuerelemente verschwinden, obwohl es keine Postback-Auslösung geben sollte?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage