Stellen Sie sicher, dass Sie der Schaltfläche eine ID zuweisen, und stellen Sie sicher, dass sie bei jeder Erstellung identisch ist.
Erstellen Sie das Steuerelement in der CreateChildControls-Überladung und fügen Sie es einmal als Reaktion auf ein anderes Ereignis nicht genug, um es auf der Seite zu halten.
Sie beste Wette Verfolgung der werden soll, ob die Schaltfläche erstellt werden muss oder nicht:
bool CreateButton
{
get
{
if (ViewState["CreateButton"] == null)
return false;
return (bool)ViewState["CreateButton"];
}
set
{
ViewState["CreateButton"] = value;
}
}
override void public CreateChildControls()
{
panel1.Controls.Clear();
if (CreateButton)
{
Button btn = new Button();
btn.Text = "Test button";
btn.ID = "CreatedButton"; // Note the ID here...
Panel1.Controls.Add(btn);
btn.Click += new EventHandler(btn_Click);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
CreateButton = true;
EnsureChildControls();
}
void btn_Click(object sender, EventArgs e)
{
Response.Write("<script>alert('test')</script>");
}
So etwas sollte für Sie arbeiten ...
, was ich meinen Code behide tun sollte? –