CLR: .Net / Mono / Boo / Otros CLR > ASP .NET
Viewstate No Guarda Los Datos
Javier Santamaria:
Hola de nuevo, ya añado los eventos y funciona todo. Si alguien necesita saber como lo he hecho que me lo pida y le pongo el codigo.
Gracias por todo, saludos.
YiroMex:
--- Citar ---Javier Santamaria Publicado: Julio 25, 2007 01:00 pm
Miembro MUY activo
Grupo: Miembros Veteranos
Mensajes: 122
Miembro nº: 54735
Registrado: May 02, 2007
Hola de nuevo, ya añado los eventos y funciona todo. Si alguien necesita saber como lo he hecho que me lo pida y le pongo el codigo.
Gracias por todo, saludos.
--- Fin de la cita ---
Estimado Javier,
Podrias proporcionar el codigo que te funciono
Saludos!
Javier Santamaria:
Ahi te va, es un pelin largo:
--- Código: Text ---'Creamos la nueva filaPrivate Sub AddNewRow(ByRef table As Table) Dim tabindex As Integer Dim row As TableRow Dim cell As TableCell Dim con As CheckBox row = TblPassengers.Rows.Item(table.Rows.Count - 1) cell = row.Cells.Item(row.Cells.Count - 1) con = cell.FindControl("CBReturntbl" & table.Rows.Count - 1.ToString) If con Is Nothing Then tabindex = 35 Else tabindex = con.TabIndex End If Dim emptyrow As New TableRow Dim lead As New TableHeaderCell Dim rdolead As New RadioButton rdolead.ID = "RdoLeadtbl" & table.Rows.Count.ToString rdolead.TabIndex = tabindex + 1 lead.Controls.Add(rdolead) emptyrow.Cells.Add(lead) Dim title As New TableCell Dim ddltitle As New DropDownList ddltitle.ID = "DDLTitletbl" & table.Rows.Count.ToString ddltitle.Items.Add("Mr") ddltitle.Items.Add("Ms") ddltitle.Items.Add("Mrs") ddltitle.Items.Add("Miss") ddltitle.Items.Add("Master") ddltitle.Items.Add("Doctor") ddltitle.Items.Add("Lady") ddltitle.Items.Add("Sir") ddltitle.Items.Add("Rev.") ddltitle.SelectedIndex = 0 ddltitle.TabIndex = tabindex + 2 title.Controls.Add(ddltitle) emptyrow.Cells.Add(title) Dim init As New TableCell Dim txtinit As New TextBox txtinit.ID = "TxtInittbl" & table.Rows.Count.ToString txtinit.TabIndex = tabindex + 3 init.Controls.Add(txtinit) emptyrow.Cells.Add(init) Dim surname As New TableCell Dim txtsurname As New TextBox txtsurname.ID = "TxtSurnametbl" & table.Rows.Count.ToString txtsurname.TabIndex = tabindex + 4 surname.Controls.Add(txtsurname) emptyrow.Cells.Add(surname) Dim age As New TableCell Dim txtage As New TextBox txtage.ID = "TxtAgetbl" & table.Rows.Count.ToString txtage.TabIndex = tabindex + 5 age.Controls.Add(txtage) emptyrow.Cells.Add(age) Dim ptcard As New TableCell Dim txtptcard As New TextBox txtptcard.ID = "TxtPTCardtbl" & table.Rows.Count.ToString txtptcard.TabIndex = tabindex + 6 ptcard.Controls.Add(txtptcard) emptyrow.Cells.Add(ptcard) Dim outward As New TableHeaderCell Dim cboutward As New CheckBox cboutward.ID = "CBOutwardtbl" & table.Rows.Count.ToString cboutward.TabIndex = tabindex + 7 outward.Controls.Add(cboutward) emptyrow.Cells.Add(outward) Dim returns As New TableHeaderCell Dim cbreturn As New CheckBox cbreturn.ID = "CBReturntbl" & table.Rows.Count.ToString cbreturn.TabIndex = tabindex + 8 returns.Controls.Add(cbreturn) emptyrow.Cells.Add(returns) table.Rows.Add(emptyrow) BtnAdd.TabIndex = tabindex + 9 BtnSubmit.TabIndex = tabindex + 10 BtnClear.TabIndex = tabindex + 11 End Sub
--- Código: Text ---'Guardamos el valor en viewstatePrivate Sub SaveTblPassengers() Dim r As TableRow Dim c As TableCell Dim con As Control Dim i As Integer For i = 0 To TblPassengers.Rows.Count - 1 r = TblPassengers.Rows.Item(i) For Each c In r.Cells For Each con In c.Controls Dim name As String name = con.ID Select Case name Case "LblLeadtbl" Dim lbl As New Label lbl = con.FindControl("LblLeadtbl") Me.ViewState.Add("LblLeadtbl", lbl.Text) Case "LblTitletbl" Dim lbl As New Label lbl = con.FindControl("LblTitletbl") Me.ViewState.Add("LblTitletbl", lbl.Text) Case "LblInittbl" Dim lbl As New Label lbl = con.FindControl("LblInittbl") Me.ViewState.Add("LblInittbl", lbl.Text) Case "LblSurnametbl" Dim lbl As New Label lbl = con.FindControl("LblSurnametbl") Me.ViewState.Add("LblSurnametbl", lbl.Text) Case "LblAgetbl" Dim lbl As New Label lbl = con.FindControl("LblAgetbl") Me.ViewState.Add("LblAgetbl", lbl.Text) Case "LblPTCardtbl" Dim lbl As New Label lbl = con.FindControl("LblPTCardtbl") Me.ViewState.Add("LblPTCardtbl", lbl.Text) Case "LblOutwardtbl" Dim lbl As New Label lbl = con.FindControl("LblOutwardtbl") Me.ViewState.Add("LblOutwardtbl", lbl.Text) Case "LblReturntbl" Dim lbl As New Label lbl = con.FindControl("LblReturntbl") Me.ViewState.Add("LblReturntbl", lbl.Text) Case "RdoLeadtbl" & i.ToString Dim rdo As New RadioButton rdo = con.FindControl("RdoLeadtbl" & i.ToString) Me.ViewState.Add("RdoLeadtbl" & i.ToString, rdo.Checked) Me.ViewState.Add("RdoLeadtbl" & i.ToString & "TabIndex", rdo.TabIndex) Case "DDLTitletbl" & i.ToString Dim ddl As New DropDownList ddl = con.FindControl("DDLTitletbl" & i.ToString) Me.ViewState.Add("DDLTitletbl" & i.ToString, ddl.SelectedIndex) Me.ViewState.Add("DDLTitletbl" & i.ToString & "TabIndex", ddl.TabIndex) Case "TxtInittbl" & i.ToString Dim txt As New TextBox txt = con.FindControl("TxtInittbl" & i.ToString) Me.ViewState.Add("TxtInittbl" & i.ToString, txt.Text) Me.ViewState.Add("TxtInittbl" & i.ToString & "TabIndex", txt.TabIndex) Case "TxtSurnametbl" & i.ToString Dim txt As New TextBox txt = con.FindControl("TxtSurnametbl" & i.ToString) Me.ViewState.Add("TxtSurnametbl" & i.ToString, txt.Text) Me.ViewState.Add("TxtSurnametbl" & i.ToString & "TabIndex", txt.TabIndex) Case "TxtAgetbl" & i.ToString Dim txt As New TextBox txt = con.FindControl("TxtAgetbl" & i.ToString) Me.ViewState.Add("TxtAgetbl" & i.ToString, txt.Text) Me.ViewState.Add("TxtAgetbl" & i.ToString & "TabIndex", txt.TabIndex) Case "TxtPTCardtbl" & i.ToString Dim txt As New TextBox txt = con.FindControl("TxtPTCardtbl" & i.ToString) Me.ViewState.Add("TxtPTCardtbl" & i.ToString, txt.Text) Me.ViewState.Add("TxtPTCardtbl" & i.ToString & "TabIndex", txt.TabIndex) Case "CBOutwardtbl" & i.ToString Dim cb As New CheckBox cb = con.FindControl("CBOutwardtbl" & i.ToString) Me.ViewState.Add("CBOutwardtbl" & i.ToString, cb.Checked) Me.ViewState.Add("CBOutwardtbl" & i.ToString & "TabIndex", cb.TabIndex) Case "CBReturntbl" & i.ToString Dim cb As New CheckBox cb = con.FindControl("CBReturntbl" & i.ToString) Me.ViewState.Add("CBReturntbl" & i.ToString, cb.Checked) Me.ViewState.Add("CBReturntbl" & i.ToString & "TabIndex", cb.TabIndex) End Select Next Next Next End Sub
--- Código: Text ---'Cargamos los valores de vuelta del viewstateProtected Sub Page_PreLoad(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreLoad Dim out As Boolean = False Dim i As Integer = 2 While Not out If Not ViewState("RdoLeadtbl" & i.ToString) Is Nothing Then Dim r As New TableRow Dim lead As New TableHeaderCell Dim rdolead As New RadioButton rdolead.ID = "RdoLeadtbl" & i.ToString rdolead.Checked = Convert.ToBoolean(ViewState("RdoLeadtbl" & i.ToString).ToString) rdolead.TabIndex = Convert.ToInt32(ViewState("RdoLeadtbl" & i.ToString & "TabIndex").ToString) lead.Controls.Add(rdolead) r.Cells.Add(lead) Dim title As New TableCell Dim ddltitle As New DropDownList ddltitle.ID = "DDLTitletbl" & i.ToString ddltitle.Items.Add("Mr") ddltitle.Items.Add("Ms") ddltitle.Items.Add("Mrs") ddltitle.Items.Add("Miss") ddltitle.Items.Add("Master") ddltitle.Items.Add("Doctor") ddltitle.Items.Add("Lady") ddltitle.Items.Add("Sir") ddltitle.Items.Add("Rev.") ddltitle.SelectedIndex = Convert.ToInt32(ViewState("DDLTitletbl" & i.ToString).ToString) ddltitle.TabIndex = Convert.ToInt32(ViewState("DDLTitletbl" & i.ToString & "TabIndex").ToString) title.Controls.Add(ddltitle) r.Cells.Add(title) Dim init As New TableCell Dim txtinit As New TextBox txtinit.ID = "TxtInittbl" & i.ToString txtinit.Text = ViewState("TxtInittbl" & i.ToString).ToString txtinit.TabIndex = Convert.ToInt32(ViewState("TxtInittbl" & i.ToString & "TabIndex").ToString) init.Controls.Add(txtinit) r.Cells.Add(init) Dim surname As New TableCell Dim txtsurname As New TextBox txtsurname.ID = "TxtSurnametbl" & i.ToString txtsurname.Text = ViewState("TxtSurnametbl" & i.ToString).ToString txtsurname.TabIndex = Convert.ToInt32(ViewState("TxtSurnametbl" & i.ToString & "TabIndex").ToString) surname.Controls.Add(txtsurname) r.Cells.Add(surname) Dim age As New TableCell Dim txtage As New TextBox txtage.ID = "TxtAgetbl" & i.ToString txtage.Text = ViewState("TxtAgetbl" & i.ToString).ToString txtage.TabIndex = Convert.ToInt32(ViewState("TxtAgetbl" & i.ToString & "TabIndex").ToString) age.Controls.Add(txtage) r.Cells.Add(age) Dim ptcard As New TableCell Dim txtptcard As New TextBox txtptcard.ID = "TxtPTCardtbl" & i.ToString txtptcard.Text = ViewState("TxtPTCardtbl" & i.ToString).ToString txtptcard.TabIndex = Convert.ToInt32(ViewState("TxtPTCardtbl" & i.ToString & "TabIndex").ToString) ptcard.Controls.Add(txtptcard) r.Cells.Add(ptcard) Dim outward As New TableHeaderCell Dim cboutward As New CheckBox cboutward.ID = "CBOutwardtbl" & i.ToString cboutward.Checked = Convert.ToBoolean(ViewState("CBOutwardtbl" & i.ToString).ToString) cboutward.TabIndex = Convert.ToInt32(ViewState("CBOutwardtbl" & i.ToString & "TabIndex").ToString) outward.Controls.Add(cboutward) r.Cells.Add(outward) Dim returns As New TableHeaderCell Dim cbreturn As New CheckBox cbreturn.ID = "CBReturntbl" & i.ToString cbreturn.Checked = Convert.ToBoolean(ViewState("CBReturntbl" & i.ToString).ToString) cbreturn.TabIndex = Convert.ToInt32(ViewState("CBReturntbl" & i.ToString & "TabIndex").ToString) returns.Controls.Add(cbreturn) r.Cells.Add(returns) TblPassengers.Rows.Add(r) i = i + 1 Else out = True End If End While End Sub
--- Código: Text ---'Añadimos los manejadores de eventosPrivate Sub AddHandlers() Dim i As Integer For i = 1 To TblPassengers.Rows.Count - 1 Dim rdo As RadioButton rdo = TblPassengers.Rows.Item(i).Cells.Item(0).FindControl("RdoLeadtbl" & i.ToString) rdo.AutoPostBack = True AddHandler rdo.CheckedChanged, AddressOf LeadCheckedChanged'LeadCheckedChanged es un procedimiento normal en el que haras lo que quieras cuando se dispare el evento por pulsar en el radiobutton Dim cb As CheckBox cb = TblPassengers.Rows.Item(i).Cells.Item(7).FindControl("CBReturntbl" & i.ToString) cb.AutoPostBack = True AddHandler cb.CheckedChanged, AddressOf ReturnCheckedChanged'ReturnCheckedChanged es un procedimiento normal en el que haras lo que quieras cuando se dispare el evento por pulsar en el checkbox Next End Sub La instruccion para llamar a este procedimiento de AddHandlers la hacemos en el page load.
Espero que te sirva
Saludos
Navegación
[*] Página Anterior
Ir a la versión completa