Sé que esta pregunta se ha hecho miles de veces, y he luchado con él antes, pero por alguna razón, no puedo lograr lo que quiero lograr ... I tener un LinkButton agregado dinámicamente que al hacer clic agregará dinámicamente un control (en este ejemplo, un cuadro de texto) al mismo panel. La intención es agregar continuamente tantos controles como las veces que se hizo clic en LinkButton (es decir, hago clic una vez, un cuadro, luego otro clic me dará dos cuadros, otro clic agrega un tercero). En el siguiente código, utilizo la fecha y hora actuales serializadas para crear una ID única para cada control de cuadro de texto.ASP.NET crea dinámicamente controles y devolución de datos
Cuando ejecuto el código, haciendo clic en "Añadir filtro" generará un nuevo cuadro de texto, pero una vez que se hace clic de nuevo va a crear una nueva, y disponer de la anterior. En cambio, quiero persistir en el cuadro de texto anterior, así como en los datos enviados dentro de él.
Su ayuda es apreciada.
En el aspx:
<asp:Panel ID="pnlFilter" runat="server">
</asp:Panel>
En los 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);
}
¿Qué harías en una situación en la que se creen cuestionarios (encuestas) en una determinada aplicación y se presenten a través de un servicio web en el que el sitio web obtiene una encuesta y muestra los campos para ella? en ese caso la creación dinámica de contenido es la única opción adecuada no? – Sander
Sí, crear dinámicamente el contenido está en orden, pero no tiene que ser incremental como lo estaba tratando de hacer; Supongo que su servicio web devuelve todos los resultados cada vez, en cuyo caso los renueva todos. Con el uso de ViewState y el almacenamiento en caché, su rendimiento debería ser bastante bueno. –
Eres un genio. Estaba tratando de lograr lo mismo que el OP, pero esto me hizo darme cuenta de que puedo en lugar de agregar varias instancias de control, puedo mostrar el nuevo control en una ventana modal y en "guardar" en su modal, comprometerme con el almacén de datos y luego carga eso en la página muy fácilmente. Mil gracias. He pasado 3 días y toda esta noche tratando de resolver esto. –