Hola a tod@s, necesito paginar un datagrid. El problema es que ademas de paginar en el grid hay un boton para enviar el porducto elegido a una cesta. He hecho otro ejemplo mas simple, un grid con un boton que al pulsarlo pone en un label el id del producto(con el evento onitemcommand), ademas este grid esta paginado. El codigo es:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
presenta() 'Introducir aquí el código de usuario para inicializar la página
End Sub
Public Sub elegir(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs )
Dim id As Integer
id = e.Item.Cells(1).Text
Me.Label1.Text = id
End Sub
Sub paginar(ByVal sender As Object, ByVal e As DataGridPageChangedEventArgs)
Me.DataGrid1.CurrentPageIndex = e.NewPageIndex
presenta()
End Sub
Public Sub presenta()
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,genero,año,precio,actores,descripcion,di rector from peliculas", conn)
Dim ds As New DataSet
conn.Open()
da.Fill(ds, "generos")
Me.DataGrid1.DataSource = ds.Tables("generos")
Me.DataGrid1.DataBind()
conn.Close()
End Sub
El problema es que al pulsar el boton del grid todo va bien ( pone el id en el label), pero al paginar, me da el error siguiente:
El argumento especificado está fuera del intervalo de valores válidos. Nombre del parámetro: index
y me señala la linea: id = e.Item.Cells(1).Text
¿Alguien sabe porque me da error, o que es lo que hago mal?¿Es mejor usar otro evento para lo del label en lugar del onitemcommand?. Muchas gracias a tod@s.