Table server Control y viewstate

17/10/2006 - 17:57 por refv8 | Informe spam
Saludos

(namespace system.web.ui.webcontrols.table)


Hay que hacer algo en especial aparte de setear en true la propiedad de

enabledviewstate para que me guarde los datos despues de hacer un post
back? porque no me funciona, ni tampoco si lo meto en un contenedor
como el placeholder :S
yo quiero armar una tabla con textbox y combos y cuando el usuario le
da click en buscar tomar esos valores para realizar la busqueda, pero
se pierde todo :(


gracias!!

Preguntas similare

Leer las respuestas

#1 Matias Iacono
18/10/2006 - 14:28 | Informe spam
Puedes poner algo de codigo?

La tabla como la creas? Todo por codigo?

Si es asi, debes agregarla manualmente al viewstate. Los controles creados
de forma programatica no son automaticamente almacenados en el viewstate.

Por lo que debes implementar el mecanizmo de colocarlo en el viewstate antes
de terminar de cargar la pagina, y recuperarlo del mismo en el postback.

Saludos.

Microsoft MVP
Orador Regional INETA


"refv8" wrote:

Saludos

(namespace system.web.ui.webcontrols.table)


Hay que hacer algo en especial aparte de setear en true la propiedad de

enabledviewstate para que me guarde los datos despues de hacer un post
back? porque no me funciona, ni tampoco si lo meto en un contenedor
como el placeholder :S
yo quiero armar una tabla con textbox y combos y cuando el usuario le
da click en buscar tomar esos valores para realizar la busqueda, pero
se pierde todo :(


gracias!!


Respuesta Responder a este mensaje
#2 refv8
18/10/2006 - 15:25 | Informe spam
Te copio el codigo, espero se entienda y me puedan dar una mano gracias

Dim contador As Integer = 0
Dim oXml As New XmlDocument
Dim oXmlArchivo As New XmlDocument
Dim nav As System.Xml.XPath.XPathNavigator

Dim celda0 As New UI.WebControls.TableCell
Dim fila0 As New UI.WebControls.TableRow
Try
oXml.LoadXml(cargoXML)
nav = oXml.CreateNavigator()
'*****CELDA 0
celda0.Text = "Agregar Parametros"
celda0.CssClass = "label"
celda0.EnableViewState = True
celda0.HorizontalAlign = HorizontalAlign.Center
fila0.Cells.Add(celda0)
'agrego la primer fila que seria el titulo
tablaEjecucion.Rows.Add(fila0) 'Este es el control Table
'**** FIN CELDA 0

For Each xnodo As XmlNode In oXml.SelectNodes("//CRITERIO")
Dim celda As New UI.WebControls.TableCell()
Dim lbl As New Label
Dim ComboOperador As New DropDownList
Dim fila As New UI.WebControls.TableRow
'*****CELDA 1
lbl.CssClass = "label"
lbl.Text = xnodo.ParentNode.Attributes("TIPO").Value
celda.Controls.Add(lbl)
fila.Cells.Add(celda)
'*****CELDA 2
'Agrego el Texto o Combo en base al tipo de Datos con
sus validaciones correspondientes
obj = AsignarTipoDato(xnododelArchivo, contador)
contador = contador + 1
Select Case obj.GetType.ToString
Case "System.Web.UI.WebControls.TextBox"
CType(obj, TextBox).EnableViewState = True
CType(obj, TextBox).CssClass = "TextBoxABM"
CType(obj, TextBox).Width = 150
celda.Controls.Add(CType(obj, TextBox))
Case "System.Web.UI.WebControls.DropDownList"
CType(obj,DropDownList ).EnableViewState = True
CType(obj,DropDownList )..CssClass = "combo"
CType(obj,DropDownList ).Width = 150
celda.Controls.Add(combo)
End Select
fila.Cells.Add(celda)
'Voy agregando las filas que estan formadas por 2 celdas un label y o
bien un textbox o un Combo dependiendo que lo que este en el XML
tablaEjecucion.Rows.Add(fila)
celda = Nothing
fila = Nothing
ComboOperador = Nothing
Next

Catch ex As Exception
Throw ex
Finally
obj = Nothing
oXml = Nothing
End Try
Respuesta Responder a este mensaje
#3 Matias Iacono
18/10/2006 - 16:11 | Informe spam
Como te comentaba antes, las variables u objetos creados en tiempo de
ejecucion, no mantienen su estado automaticamente.

Esto lo debes hacer manualmente. Por ejemplo, puedes agregar un objeto
(serializable) al viewstate:

viewstate.add("Campo") = Objeto

Y recuperarlo de forma similar.

Esto debes hacerlo manualmente con cada postback.

Saludos.

Microsoft MVP
Orador Regional INETA


"refv8" wrote:

Te copio el codigo, espero se entienda y me puedan dar una mano gracias

Dim contador As Integer = 0
Dim oXml As New XmlDocument
Dim oXmlArchivo As New XmlDocument
Dim nav As System.Xml.XPath.XPathNavigator

Dim celda0 As New UI.WebControls.TableCell
Dim fila0 As New UI.WebControls.TableRow
Try
oXml.LoadXml(cargoXML)
nav = oXml.CreateNavigator()
'*****CELDA 0
celda0.Text = "Agregar Parametros"
celda0.CssClass = "label"
celda0.EnableViewState = True
celda0.HorizontalAlign = HorizontalAlign.Center
fila0.Cells.Add(celda0)
'agrego la primer fila que seria el titulo
tablaEjecucion.Rows.Add(fila0) 'Este es el control Table
'**** FIN CELDA 0

For Each xnodo As XmlNode In oXml.SelectNodes("//CRITERIO")
Dim celda As New UI.WebControls.TableCell()
Dim lbl As New Label
Dim ComboOperador As New DropDownList
Dim fila As New UI.WebControls.TableRow
'*****CELDA 1
lbl.CssClass = "label"
lbl.Text = xnodo.ParentNode.Attributes("TIPO").Value
celda.Controls.Add(lbl)
fila.Cells.Add(celda)
'*****CELDA 2
'Agrego el Texto o Combo en base al tipo de Datos con
sus validaciones correspondientes
obj = AsignarTipoDato(xnododelArchivo, contador)
contador = contador + 1
Select Case obj.GetType.ToString
Case "System.Web.UI.WebControls.TextBox"
CType(obj, TextBox).EnableViewState = True
CType(obj, TextBox).CssClass = "TextBoxABM"
CType(obj, TextBox).Width = 150
celda.Controls.Add(CType(obj, TextBox))
Case "System.Web.UI.WebControls.DropDownList"
CType(obj,DropDownList ).EnableViewState = True
CType(obj,DropDownList )..CssClass = "combo"
CType(obj,DropDownList ).Width = 150
celda.Controls.Add(combo)
End Select
fila.Cells.Add(celda)
'Voy agregando las filas que estan formadas por 2 celdas un label y o
bien un textbox o un Combo dependiendo que lo que este en el XML
tablaEjecucion.Rows.Add(fila)
celda = Nothing
fila = Nothing
ComboOperador = Nothing
Next

Catch ex As Exception
Throw ex
Finally
obj = Nothing
oXml = Nothing
End Try


Respuesta Responder a este mensaje
#4 refv8
18/10/2006 - 19:14 | Informe spam
bueno gracias por tu respuesta. lo resolvi llamando a la misma funcion
para crear la tabla en el caso del postback, eso me crea la misma tabla
y si por ejemplo si complete un textbox me almacena el valor.

Gracias
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida