Как ответил выше, matt ?! ;)
Panel1.Controls.Remove(Panel1.FindControl("FileUploadID"));
Должен работать, НО:
Run вы вся страница корыта отладчика вы найдете какие-то странные вещи .... И без понимания жизненного цикла страницы в. Net, а также основные принципы о динамических элементах управления, которые вы можете получить, чтобы ваш контроль снова появился, в зависимости от того, когда в жизненном цикле страницы вы создаете свой динамический элемент управления, поэтому ответ на вопрос о том, как правильно создавать динамические элементы управления в управляемом путь. Итак:
Динамические элементы управления в asp.net - эти принципы Юрий Solodkyy применяются:
Выполните этот последовательный подход к созданию элементов управления динамически:
- Создание элементов управления в методе CreateChildControls.
- Вызов EnsureChildControls в LoadViewState.
- Оберните и разверните состояние просмотра в объекте Pair, чтобы вызвать вызов LoadViewState.
- Сохраните расположение динамической части страницы в свойствах, поддерживаемых в ViewState.
- Восстановить динамические элементы управления в ответ на действия пользователя в обработчиках событий.
Другие важные примечания:
- Настройка ваши средства управления перед добавлением их в коллекцию элементов управления родительских элементов управления.
- Назначить уникальные идентификаторы динамически созданным элементам управления.
- Храните ссылки на динамически созданные элементы управления в локальных полях.
- Помните, что данные сообщения обрабатываются дважды: перед OnLoad и после OnLoad.
Я вообще использую следующий код позади шаблона страницы:
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