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);
}

questionAnswers(4)

yourAnswerToTheQuestion