Добавление / удаление пользовательских элементов управления программно в заполнитель
Я делаю один asp.net приложение web forms, я создаю пользовательский элемент управления, в этот пользовательский элемент управления я вставляю несколько стандартных элементов управления .net. Теперь в моей странице.aspx, который я хочу, динамично, чтобы вставить этот элемент управления пользователя. Я поставил кнопку, что-то вроде "Добавить новый элемент управления".
Если я нажму на него, то добавлю новый элемент управления на страницу. И все это прекрасно работает.
У меня есть проблема в удалении этого элемента управления. Я пишу функцию для удаления. Но в первый раз, когда я нажимаю на него, он не удаляет элемент управления, я должен нажать еще раз, чтобы удалить последний элемент управления. Я думаю, что это что-то с обратной связью, не знаю, почему при первом обратном посте он не снимает контроль.
Я добавляю программные элементы управления в заполнитель, который находится внутри UpdaPanel. Вот код c#, как я это делаю, пожалуйста, кто-нибудь знает, где я делаю ошибку?
public partial class Clasess_And_Events : System.Web.UI.Page { protected int NumberControlsForCategory { get { return (int)ViewState["NumControlsForCategory"]; } set { ViewState["NumControlsForCategory"] = value; } } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //Initiate the counter of dynamically added controls this.NumberControlsForCategory = 0; } else { //Controls must be repeatedly be created on postback this.createControlsCategory(); } } private void createControlsCategory() { int count = this.NumberControlsForCategory; for (int i = 0; i < count; i++) { Control myUserControl = (Control)Page.LoadControl("UserControls/CategoryDropdown.ascx"); myUserControl.ID = "CategoryControl_ID_" + i.ToString(); PlaceHolder1.Controls.Add(myUserControl); } } protected void Add_Controll_Click(object sender, EventArgs e) { Control myUserControl = (Control)Page.LoadControl("UserControls/CategoryDropdown.ascx"); myUserControl.ID = "CategoryControl_ID_" + NumberControlsForCategory.ToString(); PlaceHolder1.Controls.Add(myUserControl); this.NumberControlsForCategory++; LinkButton10.Visible = true; } protected void Remove_Control_Click(object sender, EventArgs e) { Control myUserControl = (Control)Page.FindControl("CategoryControl_ID_" + NumberControlsForCategory.ToString()); PlaceHolder1.Controls.Remove(myUserControl); this.NumberControlsForCategory--; } }
Что я уже пробовал:
Я делаю один asp.net приложение web forms, я создаю пользовательский элемент управления, в этот пользовательский элемент управления я вставляю несколько стандартных элементов управления .net. Теперь в моей странице.aspx, который я хочу, динамично, чтобы вставить этот элемент управления пользователя. Я поставил кнопку, что-то вроде "Добавить новый элемент управления". Если я нажму на него, то добавлю новый элемент управления на страницу. И все это прекрасно работает.
У меня есть проблема в удалении этого элемента управления.