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

Almacenar una tabla en viewstate

Estas en el tema de Almacenar una tabla en viewstate en el foro de .NET en Foros del Web. Hola Alguien sabe como puedo almacenar en el viewstate una tabla generada mediante codigo, pues cuando se recarga la pagina pierdo las filas y columnas ...
  #1 (permalink)  
Antiguo 08/03/2005, 13:18
Avatar de splinter  
Fecha de Ingreso: junio-2004
Ubicación: Misantla,Ver.Mexico
Mensajes: 181
Antigüedad: 19 años, 10 meses
Puntos: 0
Almacenar una tabla en viewstate

Hola

Alguien sabe como puedo almacenar en el viewstate una tabla generada mediante codigo, pues cuando se recarga la pagina pierdo las filas y columnas de esta.

alguna idea?

Gracias
  #2 (permalink)  
Antiguo 08/03/2005, 17:03
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
Hola... no puedes guardar una tabla HTML en viewstate ya que no es serializable... simplemente es un wraper HTML

Tendrás que generarla en cada postback...
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 08/03/2005, 19:38
Rodolfo Israel
Invitado
 
Mensajes: n/a
Puntos:
Como almacenar el valor de algo sin que se pierda cuando se recarge la pagina

Oye amigo si te refires a un objeto System.Data.DataTable y no a una tabla html la puedes conservar los valores de la misma de la siguiente manera:

Código:
as

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Introducir aquí el código de usuario para inicializar la página
        LlenarDatos()

    End Sub

    Private Sub LlenarDatos() 

        If (Me.Page.Session("MiTabla") Is Nothing) Then

            'Esto solo ocurre la primera vez que se carga la pagina

            Dim Tabla As New Data.DataTable ' Creando la Tabla

            Dim ValoresColumnas(1) As Object

            'Agregando Columnas a la nueva tabla
            Tabla.Columns.Add("Columna1", System.Type.GetType("System.String"))
            Tabla.Columns.Add("Columna2", System.Type.GetType("System.String"))

            ValoresColumnas(0) = "Valor 1"
            ValoresColumnas(1) = "Valor 2"

            'Agregando Registros
            Tabla.Rows.Add(ValoresColumnas)

            ValoresColumnas(0) = "Valor 3"
            ValoresColumnas(1) = "Valor 4"

            Tabla.Rows.Add(ValoresColumnas)

            DataGrid1.DataSource = Tabla

            Me.Page.Session("MiTabla") = Tabla

        Else
            DataGrid1.DataSource = Me.Page.Session("MiTabla")
        End If

        DataGrid1.DataBind()

    End Sub

    Private Sub AgregarRegistro()

        Dim Tabla As Data.DataTable
        Dim ValoresColumnas(1) As Object

        Tabla = Me.Page.Session("MiTabla")

        ValoresColumnas(0) = "Valor 5"
        ValoresColumnas(1) = "Valor 6"

        'Agregando Registros
        Tabla.Rows.Add(ValoresColumnas)

        Me.Page.Session("MiTabla") = Tabla

    End Sub

    Private Sub CerrarForma()

        If (Not Me.Page.Session("MiTabla") Is Nothing) Then

            CType(Me.Page.Session("MiTabla"), Data.DataTable).Dispose()
            Me.Page.Session.Remove("MiTabla")

        End If

    End Sub

    Private Sub BtnAgregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAgregar.Click
        AgregarRegistro()
    End Sub
El caso es que puedes almacenar todos los valores que quieres en el Session, pero te recomiendo que no abuses de eso, y que cuando ya no necesites almacenar esa informacion ejecutes una limpieza del mismo como el el codigo mostrado en el procedimiento CerrarForma

Espero que eso sea lo que necesites
  #4 (permalink)  
Antiguo 08/03/2005, 19:47
Avatar de splinter  
Fecha de Ingreso: junio-2004
Ubicación: Misantla,Ver.Mexico
Mensajes: 181
Antigüedad: 19 años, 10 meses
Puntos: 0
rootk y rodolfo

Gracias por la información proporcionada. En mi caso lo que intentaba guardar es una tabla HTML generada por codigo en el viewstate.

Es posible obtener el codigo html de la tabla que es generado en el codebehind????
porque de ser asi podria volver a reescribir la tabla guardando el html

Saludos
  #5 (permalink)  
Antiguo 02/06/2005, 06:56
 
Fecha de Ingreso: abril-2005
Mensajes: 10
Antigüedad: 19 años
Puntos: 0
Pregunta, de la respuesta????????????

cuando se ejecuta el procedimiento
Private Sub CerrarForma()

If (Not Me.Page.Session("MiTabla") Is Nothing) Then

CType(Me.Page.Session("MiTabla"), Data.DataTable).Dispose()
Me.Page.Session.Remove("MiTabla")

End If

End Sub
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 14:04.