CLR: .Net / Mono / Boo / Otros CLR > ASP .NET

 Viewstate No Guarda Los Datos

<< < (2/2)

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(&#34;CBReturntbl&#34; & 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 = &#34;RdoLeadtbl&#34; & 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 = &#34;DDLTitletbl&#34; & table.Rows.Count.ToString        ddltitle.Items.Add(&#34;Mr&#34;)        ddltitle.Items.Add(&#34;Ms&#34;)        ddltitle.Items.Add(&#34;Mrs&#34;)        ddltitle.Items.Add(&#34;Miss&#34;)        ddltitle.Items.Add(&#34;Master&#34;)        ddltitle.Items.Add(&#34;Doctor&#34;)        ddltitle.Items.Add(&#34;Lady&#34;)        ddltitle.Items.Add(&#34;Sir&#34;)        ddltitle.Items.Add(&#34;Rev.&#34;)        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 = &#34;TxtInittbl&#34; & 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 = &#34;TxtSurnametbl&#34; & 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 = &#34;TxtAgetbl&#34; & 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 = &#34;TxtPTCardtbl&#34; & 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 = &#34;CBOutwardtbl&#34; & 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 = &#34;CBReturntbl&#34; & 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 &#34;LblLeadtbl&#34;                            Dim lbl As New Label                            lbl = con.FindControl(&#34;LblLeadtbl&#34;)                            Me.ViewState.Add(&#34;LblLeadtbl&#34;, lbl.Text)                        Case &#34;LblTitletbl&#34;                            Dim lbl As New Label                            lbl = con.FindControl(&#34;LblTitletbl&#34;)                            Me.ViewState.Add(&#34;LblTitletbl&#34;, lbl.Text)                        Case &#34;LblInittbl&#34;                            Dim lbl As New Label                            lbl = con.FindControl(&#34;LblInittbl&#34;)                            Me.ViewState.Add(&#34;LblInittbl&#34;, lbl.Text)                        Case &#34;LblSurnametbl&#34;                            Dim lbl As New Label                            lbl = con.FindControl(&#34;LblSurnametbl&#34;)                            Me.ViewState.Add(&#34;LblSurnametbl&#34;, lbl.Text)                        Case &#34;LblAgetbl&#34;                            Dim lbl As New Label                            lbl = con.FindControl(&#34;LblAgetbl&#34;)                            Me.ViewState.Add(&#34;LblAgetbl&#34;, lbl.Text)                        Case &#34;LblPTCardtbl&#34;                            Dim lbl As New Label                            lbl = con.FindControl(&#34;LblPTCardtbl&#34;)                            Me.ViewState.Add(&#34;LblPTCardtbl&#34;, lbl.Text)                        Case &#34;LblOutwardtbl&#34;                            Dim lbl As New Label                            lbl = con.FindControl(&#34;LblOutwardtbl&#34;)                            Me.ViewState.Add(&#34;LblOutwardtbl&#34;, lbl.Text)                        Case &#34;LblReturntbl&#34;                            Dim lbl As New Label                            lbl = con.FindControl(&#34;LblReturntbl&#34;)                            Me.ViewState.Add(&#34;LblReturntbl&#34;, lbl.Text)                        Case &#34;RdoLeadtbl&#34; & i.ToString                            Dim rdo As New RadioButton                            rdo = con.FindControl(&#34;RdoLeadtbl&#34; & i.ToString)                            Me.ViewState.Add(&#34;RdoLeadtbl&#34; & i.ToString, rdo.Checked)                            Me.ViewState.Add(&#34;RdoLeadtbl&#34; & i.ToString & &#34;TabIndex&#34;, rdo.TabIndex)                        Case &#34;DDLTitletbl&#34; & i.ToString                            Dim ddl As New DropDownList                            ddl = con.FindControl(&#34;DDLTitletbl&#34; & i.ToString)                            Me.ViewState.Add(&#34;DDLTitletbl&#34; & i.ToString, ddl.SelectedIndex)                            Me.ViewState.Add(&#34;DDLTitletbl&#34; & i.ToString & &#34;TabIndex&#34;, ddl.TabIndex)                        Case &#34;TxtInittbl&#34; & i.ToString                            Dim txt As New TextBox                            txt = con.FindControl(&#34;TxtInittbl&#34; & i.ToString)                            Me.ViewState.Add(&#34;TxtInittbl&#34; & i.ToString, txt.Text)                            Me.ViewState.Add(&#34;TxtInittbl&#34; & i.ToString & &#34;TabIndex&#34;, txt.TabIndex)                        Case &#34;TxtSurnametbl&#34; & i.ToString                            Dim txt As New TextBox                            txt = con.FindControl(&#34;TxtSurnametbl&#34; & i.ToString)                            Me.ViewState.Add(&#34;TxtSurnametbl&#34; & i.ToString, txt.Text)                            Me.ViewState.Add(&#34;TxtSurnametbl&#34; & i.ToString & &#34;TabIndex&#34;, txt.TabIndex)                        Case &#34;TxtAgetbl&#34; & i.ToString                            Dim txt As New TextBox                            txt = con.FindControl(&#34;TxtAgetbl&#34; & i.ToString)                            Me.ViewState.Add(&#34;TxtAgetbl&#34; & i.ToString, txt.Text)                            Me.ViewState.Add(&#34;TxtAgetbl&#34; & i.ToString & &#34;TabIndex&#34;, txt.TabIndex)                        Case &#34;TxtPTCardtbl&#34; & i.ToString                            Dim txt As New TextBox                            txt = con.FindControl(&#34;TxtPTCardtbl&#34; & i.ToString)                            Me.ViewState.Add(&#34;TxtPTCardtbl&#34; & i.ToString, txt.Text)                            Me.ViewState.Add(&#34;TxtPTCardtbl&#34; & i.ToString & &#34;TabIndex&#34;, txt.TabIndex)                        Case &#34;CBOutwardtbl&#34; & i.ToString                            Dim cb As New CheckBox                            cb = con.FindControl(&#34;CBOutwardtbl&#34; & i.ToString)                            Me.ViewState.Add(&#34;CBOutwardtbl&#34; & i.ToString, cb.Checked)                            Me.ViewState.Add(&#34;CBOutwardtbl&#34; & i.ToString & &#34;TabIndex&#34;, cb.TabIndex)                        Case &#34;CBReturntbl&#34; & i.ToString                            Dim cb As New CheckBox                            cb = con.FindControl(&#34;CBReturntbl&#34; & i.ToString)                            Me.ViewState.Add(&#34;CBReturntbl&#34; & i.ToString, cb.Checked)                            Me.ViewState.Add(&#34;CBReturntbl&#34; & i.ToString & &#34;TabIndex&#34;, 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(&#34;RdoLeadtbl&#34; & i.ToString) Is Nothing Then                Dim r As New TableRow                 Dim lead As New TableHeaderCell                Dim rdolead As New RadioButton                rdolead.ID = &#34;RdoLeadtbl&#34; & i.ToString                rdolead.Checked = Convert.ToBoolean(ViewState(&#34;RdoLeadtbl&#34; & i.ToString).ToString)                rdolead.TabIndex = Convert.ToInt32(ViewState(&#34;RdoLeadtbl&#34; & i.ToString & &#34;TabIndex&#34;).ToString)                lead.Controls.Add(rdolead)                r.Cells.Add(lead)                 Dim title As New TableCell                Dim ddltitle As New DropDownList                ddltitle.ID = &#34;DDLTitletbl&#34; & i.ToString                ddltitle.Items.Add(&#34;Mr&#34;)                ddltitle.Items.Add(&#34;Ms&#34;)                ddltitle.Items.Add(&#34;Mrs&#34;)                ddltitle.Items.Add(&#34;Miss&#34;)                ddltitle.Items.Add(&#34;Master&#34;)                ddltitle.Items.Add(&#34;Doctor&#34;)                ddltitle.Items.Add(&#34;Lady&#34;)                ddltitle.Items.Add(&#34;Sir&#34;)                ddltitle.Items.Add(&#34;Rev.&#34;)                ddltitle.SelectedIndex = Convert.ToInt32(ViewState(&#34;DDLTitletbl&#34; & i.ToString).ToString)                ddltitle.TabIndex = Convert.ToInt32(ViewState(&#34;DDLTitletbl&#34; & i.ToString & &#34;TabIndex&#34;).ToString)                title.Controls.Add(ddltitle)                r.Cells.Add(title)                 Dim init As New TableCell                Dim txtinit As New TextBox                txtinit.ID = &#34;TxtInittbl&#34; & i.ToString                txtinit.Text = ViewState(&#34;TxtInittbl&#34; & i.ToString).ToString                txtinit.TabIndex = Convert.ToInt32(ViewState(&#34;TxtInittbl&#34; & i.ToString & &#34;TabIndex&#34;).ToString)                init.Controls.Add(txtinit)                r.Cells.Add(init)                 Dim surname As New TableCell                Dim txtsurname As New TextBox                txtsurname.ID = &#34;TxtSurnametbl&#34; & i.ToString                txtsurname.Text = ViewState(&#34;TxtSurnametbl&#34; & i.ToString).ToString                txtsurname.TabIndex = Convert.ToInt32(ViewState(&#34;TxtSurnametbl&#34; & i.ToString & &#34;TabIndex&#34;).ToString)                surname.Controls.Add(txtsurname)                r.Cells.Add(surname)                 Dim age As New TableCell                Dim txtage As New TextBox                txtage.ID = &#34;TxtAgetbl&#34; & i.ToString                txtage.Text = ViewState(&#34;TxtAgetbl&#34; & i.ToString).ToString                txtage.TabIndex = Convert.ToInt32(ViewState(&#34;TxtAgetbl&#34; & i.ToString & &#34;TabIndex&#34;).ToString)                age.Controls.Add(txtage)                r.Cells.Add(age)                 Dim ptcard As New TableCell                Dim txtptcard As New TextBox                txtptcard.ID = &#34;TxtPTCardtbl&#34; & i.ToString                txtptcard.Text = ViewState(&#34;TxtPTCardtbl&#34; & i.ToString).ToString                txtptcard.TabIndex = Convert.ToInt32(ViewState(&#34;TxtPTCardtbl&#34; & i.ToString & &#34;TabIndex&#34;).ToString)                ptcard.Controls.Add(txtptcard)                r.Cells.Add(ptcard)                 Dim outward As New TableHeaderCell                Dim cboutward As New CheckBox                cboutward.ID = &#34;CBOutwardtbl&#34; & i.ToString                cboutward.Checked = Convert.ToBoolean(ViewState(&#34;CBOutwardtbl&#34; & i.ToString).ToString)                cboutward.TabIndex = Convert.ToInt32(ViewState(&#34;CBOutwardtbl&#34; & i.ToString & &#34;TabIndex&#34;).ToString)                outward.Controls.Add(cboutward)                r.Cells.Add(outward)                 Dim returns As New TableHeaderCell                Dim cbreturn As New CheckBox                cbreturn.ID = &#34;CBReturntbl&#34; & i.ToString                cbreturn.Checked = Convert.ToBoolean(ViewState(&#34;CBReturntbl&#34; & i.ToString).ToString)                cbreturn.TabIndex = Convert.ToInt32(ViewState(&#34;CBReturntbl&#34; & i.ToString & &#34;TabIndex&#34;).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(&#34;RdoLeadtbl&#34; & 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(&#34;CBReturntbl&#34; & 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

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa