Foros del Web » Programación para mayores de 30 ;) » .NET »

Problemas con el control Table con ASP .NET

Estas en el tema de Problemas con el control Table con ASP .NET en el foro de .NET en Foros del Web. Hola, estoy creando una página con dos cajas de texto, una tabla y un botón. Al pulsar ´sobre el botón recojo los valores de la ...
  #1 (permalink)  
Antiguo 19/05/2004, 08:46
 
Fecha de Ingreso: abril-2002
Mensajes: 14
Antigüedad: 22 años
Puntos: 0
Problemas con el control Table con ASP .NET

Hola,
estoy creando una página con dos cajas de texto, una tabla y un botón. Al pulsar ´sobre el botón recojo los valores de la caja de texto y los añado a la tabla.
el problema es que no me guarda el estado de la tabla. Siempre veo sólo una fila. He puesto la propiedad EnableViewState a true pero o me hace caso. Lo he probado con un listbox y me lo hace bien. ¿Qué hago mal? ¿es que no se pueden crear tablas de forma dinámica de esta forma?
Gracias
  #2 (permalink)  
Antiguo 19/05/2004, 09:02
Avatar de juagarc4  
Fecha de Ingreso: octubre-2003
Ubicación: En casa
Mensajes: 127
Antigüedad: 20 años, 6 meses
Puntos: 0
¿Podrias poner el código de como añades los valores a la tabla?
__________________
El que pregunta lo que no sabe, es ignorante durante 5 minutos, el que no lo pregunta lo es de por vida (Proverbio Chino)
La tonteria se pone siempre en primera fila, para ser vista. La inteligencia se pones siempre detrás para poder ver. (Alguien lo dijo, seguro)
  #3 (permalink)  
Antiguo 19/05/2004, 09:15
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Sin código es un poco difícil saber el error...pero puedes probar ésto en tu code y ponerlo dentro de un boton:

Suponiendo que tienes una tabla llamada tbl y 2 textbox (rows,cols)

Cita:
tbl .Controls.Clear()
tbl.BorderWidth = Unit.Pixel(2)

Dim i, j As Integer
For i = 0 To CInt(txtRow .Text)
Dim rowNew As New TableRow
tbl .Controls.Add(rowNew)

For j = 0 To CInt(txtCols .Text)
'Creo un objeto table cell
Dim cellNew As New TableCell
cellNew.BorderWidth = Unit.Pixel(2)
cellNew.Text = "Celda (" & i.ToString & "," & j.ToString & ")"
rowNew.Controls.Add(cellNew)
Next

Next
Obviamente debes tener una tabla del lado del server.


<asp:Table id="tbl " runat="server"></asp:Table>

Saludos y espero te funcione..
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #4 (permalink)  
Antiguo 19/05/2004, 09:39
 
Fecha de Ingreso: abril-2002
Mensajes: 14
Antigüedad: 22 años
Puntos: 0
Gracias pero ...

Gracias RootK,
el código es parecido al mío. Lo único que yo no limpio (clear) la tabla. Pero el problema sigue sin resolverse ya que cuando pulso sobre el botón me añade la información pero si pongo otra información en las cajas de texto y vuelvo a darle al botón me añade a la tabla la información pero eliminando la fila que antes tenía.

Mi código es:

Private Sub cmdAñadir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAñadir.Click
Dim fila As TableRow
Dim columna As TableCell


fila = New TableRow

tblClientes.Controls.Add(fila)

columna = New TableCell
columna.Text = txtNombre.Text
columna.BorderStyle = BorderStyle.Solid
columna.Font.Name = "Arial"
fila.Controls.Add(columna)

columna = New TableCell
columna.Text = txtApellidos.Text
columna.BorderStyle = BorderStyle.Solid
columna.Font.Name = "Arial"
fila.Controls.Add(columna)


End Sub

¿Cómo puedo hacer para que me mantenga las filas de la tabla cada vez que pulso el botón, es decir, cuando se da de visita al servidor?

Gracias.
  #5 (permalink)  
Antiguo 07/05/2008, 13:34
 
Fecha de Ingreso: mayo-2008
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
Re: Problemas con el control Table con ASP .NET

para solucionar este problema debes dibujar la tabla y cargar los controles en la misma, cada vez que hagas postback.
para ello realiza una funcion y llamala desde el page_load

ejemplo:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
'algo
Else
DibujarTabla()
End If
End Sub

la funcion DibujarTabla te vuelve a cargar la tabla y al haber configurado la misma como enableviewstate = true, todo lo que realize el usuario se mantendrá.

saludos!!!!
  #6 (permalink)  
Antiguo 07/05/2008, 15:18
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Re: Problemas con el control Table con ASP .NET

revivió mensaje despues de 4 años . . .
Cita:
Antiguo 19/05/04, 10:39:24
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #7 (permalink)  
Antiguo 16/07/2008, 10:44
 
Fecha de Ingreso: junio-2008
Mensajes: 7
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problemas con el control Table con ASP .NET

Ahora que pasa si Manejo AJAX, ASP.NET y en el TABLE

quiero manjear una tabla dinamica


Tengo mi textbox.. y mi boton dentro de 1 updatepanel1
y en el updatepanel2 esta la tabla.....

Con la funcion de agragar row....
Pero soolo se agrega 1 Linea.

En esta pagina muestra como usarlos.... pero utilizando updatepanels de ajax, siempre me reimprime una tabla nueva...
http://msdn.microsoft.com/es-es/library/7bewx260(VS.80).aspx
¿Alguien sabe como agragar nuevo row sin perder los demas?
En esta Otra pagina viene algo de lo que necesito.... pero sin la complejidad del mismo
http://www.asp.net/AJAX/AjaxControlToolkit/Samples/ReorderList/ReorderList.aspx
---------------------
Código HTML:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="tabla.aspx.cs" Inherits="tabla" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <br />
        <asp:Table ID="TablaEstatica" runat="server">
        </asp:Table>
        <br />
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:Table ID="TablaDinamica" runat="server">
                </asp:Table>
                <asp:TextBox ID="tbDatos" runat="server"></asp:TextBox>
                <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Add" />
            </ContentTemplate>
        </asp:UpdatePanel>
    
    </div>
    </form>
</body>
</html> 
-----------------
Código:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class tabla : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        TableRow fila;
        TableCell celda;
        
        for (int j = 0; j < 10; j++)
        {
            fila = new TableRow();
            for (int i = 0; i < 10; i++)
            {
                celda = new TableCell();
                celda.Text = "Celda " + i;
                fila.Cells.Add(celda);
            }
            TablaEstatica.Rows.Add(fila);
        }
        CONTADOR = 0;
    }

    private TableRow filas;
    private TableCell celdas;
    private int CONTADOR;
    
    protected void Button1_Click(object sender, EventArgs e)
    {
        
        CONTADOR++;
        filas = new TableRow();
        
        celdas = new TableCell();
        celdas.Text = tbDatos.Text;
        
        filas.Cells.Add(celdas);
        TablaDinamica.Rows.AddAt(TablaDinamica.Rows.Count-1, filas);
        //TablaDinamica.Rows.Add(filas);
    }
}

Última edición por alxrex; 16/07/2008 a las 11:22
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 17:56.