Wie beantwortet oben matt ?! ;)
Panel1.Controls.Remove(Panel1.FindControl("FileUploadID"));
arbeiten sollte, aber:
Run Sie ganze Seite des Debuggers Trog einige seltsame Dinge finden .... Und ohne Verständnis Seite Lebenszyklus. Sowohl bei Net- als auch Basis-Principles über dynamische Steuerelemente kann es passieren, dass Ihre Steuerelemente wieder angezeigt werden. Je nachdem, wann Sie im Seitenlebenszyklus Ihre dynamische Steuerung erstellen, lautet die Antwort auf die Frage, wie Sie richtig dynamische Steuerelemente in einem Steuerelement erstellen können Weg. Also:
Dynamische Steuerelemente in asp.net - diese Grundsätze von Yuriy Solodkyy gelten:
Folgen Sie diesen konsistenten Ansatz zu den Kontrollen zu schaffen dynamisch:
- Erstellen Steuerelemente in der Createchild Methode.
- Rufen Sie EnsureChildControls im LoadViewState auf.
- Positionierungsstatus im Pair-Objekt umbrechen und auspacken, um den Aufruf von LoadViewState zu erzwingen.
- Speichern Sie das Layout des dynamischen Teils der Seite in Eigenschaften, die in ViewState gesichert sind.
- Erstellen Sie dynamische Steuerelemente als Reaktion auf Benutzeraktionen in Ereignishandlern neu.
Weitere wichtige Hinweise:
- Konfigurieren Sie Ihre Kontrollen, bevor sie zu den Kontrollen Sammlung der übergeordneten Steuerung hinzufügen.
- Weisen Sie dynamisch erstellten Steuerelementen eindeutige IDs zu.
- Behalten Sie Verweise auf dynamisch erstellte Steuerelemente in lokalen Feldern.
- Denken Sie daran, dass Postdaten zweimal verarbeitet werden: vor OnLoad und nach OnLoad.
ich den folgenden Code im Allgemeinen tun hinter Seitenvorlage verwenden:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
public partial class template : BasePageGui
{
#region Introduction
private string msg; //this is the message you are going to show to your users
private TextBox [ ] holderForTxt; //holder for dynamic textboxes
private DropDownList [ ] holderForDdl;
private HtmlInputRadioButton [ ] holderForRdb;
private HtmlInputCheckBox [ ] holderForCkb;
private Label [ ] holderForAst;
DataSet ds; //dataset for metadata
DataSet pds; //parameter dataset
DataSet rds; //return set dataset
#endregion
#region Properties
//set here page properties to use with the viewstate
#endregion //Properties
#region TemplateMethods
protected override void OnInit (EventArgs e)
{
} //eof OnInit
protected override void CreateChildControls()
{
base.CreateChildControls();
CreateDynamicControls();
}
protected override object SaveViewState()
{
return new Pair (base.SaveViewState() , null);
}
protected override void LoadViewState (object savedState)
{
base.LoadViewState (((Pair) savedState).First);
EnsureChildControls();
}
protected void Page_Load (object sender , EventArgs e)
{ //comm -- the controls should be generated at the init stage and the databinding happens here
if (this.IsPostBack == false)
{
} //eof on first load
else
{
} //eof on post back
this.DataBind();
} //eof method
private void CreateDynamicControls()
{
} //eof method
#endregion //TemplateMethods
#region DisplayMethods
#endregion //DisplayMethods
#region ClickEventHandlers
#endregion ClickEventHandlers
#region GridViewEventHanlders
#endregion //GridViewEventHandlers
} //eof class