Я знаю, что этот вопрос задавали тысячи раз, и я боролся с ним раньше, но по какой-то причине я не могу выполнить то, что я хочу выполнить... У меня есть динамически добавленный LinkButton, который при нажатии будет динамически добавлять элемент управления (в этом примере, текстовое поле) к той же панели. Цель состоит в том, чтобы постоянно добавлять столько элементов управления, сколько раз, когда был нажат LinkButton (т.е. Я нажму один раз, один флажок, затем другой щелчок даст мне 2 поля, другой щелчок добавит третий). В приведенном ниже коде я использую текущую дату и время, сериализованные для создания уникального идентификатора для каждого элемента управления текстовыми полями.
Когда я запускаю код, нажатие "Добавить фильтр" создаст новое текстовое поле, но после его повторного нажатия создаст новый и удалит его перед ним. Вместо этого я хочу сохранить предыдущий текстовый блок, а также любые данные, представленные в нем.
Ваша помощь приветствуется.
В aspx:
<asp:Panel ID="pnlFilter" runat="server">
</asp:Panel>
В aspx.cs:
protected void Page_Init(object sender, EventArgs e)
{
LinkButton lb = new LinkButton();
lb.ID = "lbAddFilter";
pnlFilter.Controls.Add(lb);
lb.Text = "Add Filter";
lb.Click += new EventHandler(lbAddFilter_Click);
}
void lbAddFilter_Click(object sender, EventArgs e)
{
TextBox tb = new TextBox();
tb.ID = "tb" + DateTime.Now.ToBinary().ToString();
pnlFilter.Controls.Add(tb);
}