ASP.NET creado dinámicamente controles y Postback

Sé que esta pregunta se ha hecho miles de veces, y he tenido problemas con ella antes, pero por alguna razón, no puedo lograr lo que quiero lograr ... Tengo un LinkButton agregado dinámicamente que al hacer clic se agregará dinámicamente un control (en este ejemplo, un cuadro de texto) al mismo panel. La intención es agregar continuamente tantos controles como se haga clic en el LinkButton (es decir, hago clic una vez, un cuadro, luego otro clic me dará 2 cuadros, otro clic agrega un tercero). En el siguiente código, utilizo la fecha y hora actual serializadas para crear una ID única para cada control de cuadro de texto.

Cuando ejecuto el código, hacer clic en "Agregar filtro" generará un nuevo cuadro de texto, pero una vez que haga clic nuevamente creará uno nuevo y eliminará el que está antes. En cambio, quiero conservar el cuadro de texto anterior, así como cualquier dato enviado dentro de él.

Tu ayuda es apreciada.

En la aspx:

<asp:Panel ID="pnlFilter" runat="server">

</asp:Panel>

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

Respuestas a la pregunta(4)

Su respuesta a la pregunta