Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Problemas con el control Table con ASP .NET (http://www.forosdelweb.com/f29/problemas-con-control-table-con-asp-net-203984/)

natinieves 19/05/2004 08:46

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

juagarc4 19/05/2004 09:02

¿Podrias poner el código de como añades los valores a la tabla? :pensando:

RootK 19/05/2004 09:15

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> :arriba:

Saludos y espero te funcione.. :cool:

natinieves 19/05/2004 09:39

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.

DaniSpa 07/05/2008 13:34

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!!!!

RootK 07/05/2008 15:18

Re: Problemas con el control Table con ASP .NET
 
revivió mensaje despues de 4 años . . .
Cita:

Antiguo 19/05/04, 10:39:24

alxrex 16/07/2008 10:44

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



La zona horaria es GMT -6. Ahora son las 10:55.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.