Controles e Postback criados dinamicamente pelo ASP.NET
Sei que essa pergunta já foi feita milhares de vezes e já lutei com ela antes, mas, por alguma razão, não consigo realizar o que quero realizar ... Tenho um LinkButton adicionado dinamicamente que, quando clicado, adiciona dinamicamente um controle (neste exemplo, uma caixa de texto) para o mesmo painel. A intenção é adicionar continuamente tantos controles quantas vezes o LinkButton foi clicado (ou seja, eu clico nele uma vez, uma caixa e outro clique me dará duas caixas, outro clique adiciona uma terceira). No código abaixo, eu uso a data e hora atuais serializadas para criar uma identificação exclusiva para cada controle de caixa de texto.
Quando executo o código, clicar em "Adicionar filtro" gerará uma nova caixa de texto, mas uma vez clicada novamente, criará uma nova e descartará a anterior. Em vez disso, desejo manter a caixa de texto anterior, bem como quaisquer dados enviados nela.
Sua ajuda é apreciada.
No aspx:
<asp:Panel ID="pnlFilter" runat="server">
</asp:Panel>
No 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);
}