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

datagrid y paginacion

Estas en el tema de datagrid y paginacion en el foro de .NET en Foros del Web. Buenas, tengo un datagrid. Dentro de la <itemtemplate> tengo una tabla que presenta varios datos. En esta tabla hay un checkbox (uno por cada registro ...
  #1 (permalink)  
Antiguo 08/05/2005, 14:33
 
Fecha de Ingreso: marzo-2005
Mensajes: 94
Antigüedad: 19 años, 1 mes
Puntos: 0
datagrid y paginacion

Buenas, tengo un datagrid. Dentro de la <itemtemplate> tengo una tabla que presenta varios datos. En esta tabla hay un checkbox (uno por cada registro del datagrid) que debe estar marcado bajo ciertas condiciones. Mi problema es que al paginar el datagrid los checkbox que deberian estar marcados aparecen sin marcar aunque la paginacion la hace bien. Alguien me puede dar una idea de porque ocurre esto?. Muchas gracias a todos, me estais ayudando mogollon. Chao.
  #2 (permalink)  
Antiguo 08/05/2005, 23:25
Avatar de jose_d  
Fecha de Ingreso: enero-2003
Ubicación: Cali
Mensajes: 220
Antigüedad: 21 años, 3 meses
Puntos: 4
Hola puedes colocar lo que estas haciendo, para darnos una mejor idea
__________________
El leer te da el poder de mejorar
  #3 (permalink)  
Antiguo 09/05/2005, 10:54
 
Fecha de Ingreso: marzo-2005
Mensajes: 94
Antigüedad: 19 años, 1 mes
Puntos: 0
Cita:
Iniciado por jose_d
Hola puedes colocar lo que estas haciendo, para darnos una mejor idea
Buenas, el codigo que sigue es del pageload:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.DropDownList2.Visible = False
Me.Button1.Visible = False
Me.activar00.Text = "Activar oferta con referencia:"
Me.desactivar00.Text = "Desactivar oferta con referencia:"
Me.desactivar00.Visible = False
Dim i, j As Integer
Dim check As CheckBox
Dim conn As New OleDbConnection
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\tienda.mdb"
Dim da As New OleDbDataAdapter("select id,titulo,precio,formato,referencia,enoferta,stock from ofertas", conn)
Dim da2 As New OleDbDataAdapter("select referencia from ofertas where enoferta=false and stock>1", conn)
Dim ds As New DataSet
Dim ds2 As New DataSet
conn.Open()
da2.Fill(ds2, "ofertason")
da.Fill(ds, "ofertas")
Me.DataGrid1.DataSource = ds.Tables("ofertas")
Me.DataGrid1.DataBind()
For i = 0 To Me.DataGrid1.Items.Count - 1
check = CType(Me.DataGrid1.Items(i).FindControl("enoferta" ), CheckBox)
If ds.Tables("ofertas").Rows(i).Item(5) = True Then
check.Visible = True
check.Checked = True
Else
check.Visible = False
End If
Next
If Not Page.IsPostBack Then
Dim vacio As New ListItem
vacio.Text = "---------"
Me.DropDownList1.Items.Add(vacio)
For j = 0 To ds2.Tables("ofertason").Rows.Count - 1
Dim item As New ListItem
item.Text = ds2.Tables("ofertason").Rows(j).Item(0)
Me.DropDownList1.Items.Add(item)
Next
End If
conn.Close()
'Introducir aquí el código de usuario para inicializar la página
End Sub
En el se marcan los checkbox cuyas ofertas esten a true en la base de datos.
Para paginar el datagrid hago lo tipico:
Public Sub paginar(ByVal obj As Object, ByVal e As DataGridPageChangedEventArgs)
Me.DataGrid1.CurrentPageIndex = e.NewPageIndex
Me.DataGrid1.DataBind()
End Sub
Mi pregunta es ¿porque al paginar el datagrid todos los checkbox aparecen sin marcar aunque en la base de datos esten a true?.
Espero haberme explicado bien. Gracias por vuestra ayuda.
  #4 (permalink)  
Antiguo 09/05/2005, 15:15
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Pues podrías empezar arreglando tu código, no tiene sentido que cargues tu DataGrid en cada postback que se realiza, trata de agrupar código relacionado en métodos, cosa que así los utilizas con mayor facilidad, lo de marcar los CheckBox's me parece que sería mejor implementarlo en el evento ItemDataBound del DataGrid.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
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 16:42.