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
| ||||
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 |
| |||
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:
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 CerrarFormaas 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 Espero que eso sea lo que necesites |
| ||||
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 |
| |||
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 |