Foros del Web » Programando para Internet » ASPX (.net) »

Crear contro tabla asp.net de forma dinamica y recuperar sus valores

Estas en el tema de Crear contro tabla asp.net de forma dinamica y recuperar sus valores en el foro de ASPX (.net) en Foros del Web. Hola chicos, soy nueva en programacion y por tal motivo necesito ayuda en este caso, ya que mi busqueda de la solucion me esta tomando ...
  #1 (permalink)  
Antiguo 15/03/2013, 14:46
Avatar de madeleyn66  
Fecha de Ingreso: marzo-2013
Ubicación: Lima
Mensajes: 1
Antigüedad: 11 años, 1 mes
Puntos: 0
Mensaje Crear contro tabla asp.net de forma dinamica y recuperar sus valores

Hola chicos, soy nueva en programacion y por tal motivo necesito ayuda en este caso, ya que mi busqueda de la solucion me esta tomando mucho tiempo. Si alguien podria ayudarme por favor, se lo agradecere mucho.

Me sale el siguiente error: El control txtTipo1 de tipo TextBox debe colocarse dentro de una etiqueta de formulario con runat = server

al momento de crear la tabla dinámicamente. Por otro lado, si quito la lógica del Page_PreRender logro crear la tabla dinámicamente, pero no logro recuperar los valores al ir nuevamente al servidor (se pierden), trate de buscar ayuda en unos foros y me sugirieron usar viewstate pero al momento de usarlo me sale también error de que que el control Table debe ser serializable.

Lo que necesito es crear dinámicamente mi tabla, y después recuperar los valores.

private void Page_PreRender(object sender, EventArgs e)
{
// Save PageArrayList before the page is rendered.
Page page = new System.Web.UI.Page();
HtmlForm form = new HtmlForm();

page.Controls.Add(form);
form.Controls.Add(tablaServidor);

System.IO.StringWriter sw = new System.IO.StringWriter();

HtmlTextWriter tw = new HtmlTextWriter(sw);

page.Form.FindControl("tablaServidor").RenderContr ol(tw);

ViewState["tablaServidor"] = sw.ToString();

}

private void crearTablaServidor()
{

int contador = 1;

while (contador <= 5)
{

TableRow row = new TableRow(); // creamos la fila

TableCell cell_1 = new TableCell(); // creamos las columnas (celda)
TableCell cell_2 = new TableCell(); // creamos las columnas (celda)
TableCell cell_3 = new TableCell(); // creamos las columnas (celda)

TextBox newTxt1 = new TextBox(); // creamos el control TextBox
newTxt1.ID = "txtTipo" + contador; // añadimos un ID al control
newTxt1.Text = contador.ToString(); // añadimos un valor por defecto
newTxt1.Attributes.Add("runat", "server");

TextBox newTxt2 = new TextBox();
newTxt2.ID = "txtReferencia" + contador;
newTxt2.Text = contador.ToString();
newTxt2.Attributes.Add("runat", "server");

TextBox newTxt3 = new TextBox();
newTxt3.ID = "txtMonto" + contador;
newTxt3.Text = contador.ToString();
newTxt3.Attributes.Add("runat", "server");

cell_1.ID = "celdaA" + contador;
cell_2.ID = "celdaB" + contador;
cell_3.ID = "celdaC" + contador;

cell_1.Attributes.Add("runat", "server");
cell_2.Attributes.Add("runat", "server");
cell_3.Attributes.Add("runat", "server");

cell_1.Controls.Add(newTxt1); // añadimos el TextBox a la Celda
cell_2.Controls.Add(newTxt2);
cell_3.Controls.Add(newTxt3);

row.ID = "filaA" + contador;
row.Attributes.Add("runat", "server");
row.Cells.Add(cell_1); // añadimos cada celda a la fila
row.Cells.Add(cell_2);
row.Cells.Add(cell_3);


Table xxx = (Table)Page.Form.FindControl("tablaServidor");
xxx.Rows.Add(row);
// tablaServidor.Rows.Add(row); //añado la fila a la tabla

contador = contador + 1;
}




Gracias

Última edición por madeleyn66; 15/03/2013 a las 14:56

Etiquetas: c#, controles, dinamica, dinamicos, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:42.