Foros del Web » Programando para Internet » ASPX (.net) »

AYUDAAAA gridviewrow

Estas en el tema de AYUDAAAA gridviewrow en el foro de ASPX (.net) en Foros del Web. Hola! tengo estas 2 lineas que me dan error porque dice que no son para el gridview. No se como ponerlas para que me vayan ...
  #1 (permalink)  
Antiguo 09/04/2008, 04:18
 
Fecha de Ingreso: marzo-2008
Mensajes: 65
Antigüedad: 16 años, 1 mes
Puntos: 0
AYUDAAAA gridviewrow

Hola! tengo estas 2 lineas que me dan error porque dice que no son para el gridview. No se como ponerlas para que me vayan bien, por favor.... necesito que me ayuden.


Me.datosCLientes.Rows(fila.Index).Selected = True

Me.datosCLientes.FirstDisplayedScrollingRowIndex = fila.Index


Gracias
  #2 (permalink)  
Antiguo 09/04/2008, 08:06
Avatar de Javier Santamaria  
Fecha de Ingreso: julio-2007
Mensajes: 296
Antigüedad: 16 años, 9 meses
Puntos: 1
Re: AYUDAAAA gridviewrow

Como que te dice que no son para el gridview. Puedes poner exactamente el error que te da?

Saludos
  #3 (permalink)  
Antiguo 09/04/2008, 09:47
 
Fecha de Ingreso: marzo-2008
Mensajes: 65
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: AYUDAAAA gridviewrow

si claro, pone:

Index no es un miembro de system.web.ui.webcontrols.gridviewrow

FirstDisplayedScrollingRowIndex no es un miembro de system.web.ui.webcontrols.gridview

Ojala puedas ayudarme. Gracias
  #4 (permalink)  
Antiguo 10/04/2008, 09:13
Avatar de Fann_Lavigne  
Fecha de Ingreso: diciembre-2004
Mensajes: 622
Antigüedad: 19 años, 4 meses
Puntos: 12
Re: AYUDAAAA gridviewrow

Podria poner el sub kompleto please, seria mas facil ver que puede estar pasando
__________________
"Entre Mas Brillante Es Una Mente, Tiene Que Luchar Contra Demonios Internos Mas Poderosos"
[email protected]
  #5 (permalink)  
Antiguo 10/04/2008, 09:46
 
Fecha de Ingreso: julio-2006
Mensajes: 145
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: AYUDAAAA gridviewrow

y lo que quieres hacer...
  #6 (permalink)  
Antiguo 10/04/2008, 10:19
 
Fecha de Ingreso: marzo-2008
Mensajes: 65
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: AYUDAAAA gridviewrow

Hola! He conseguido quitar esos fallos, pero tengo otros y ya no se que hacer!

Os mando el codigo completo para que lo veais. MUCHAS GRACIAS.

EL FALLO QUE ME DA:

Error 1 'ClearSelection' no es un miembro de 'System.Web.UI.WebControls.DataGrid'.

Error 2 El tipo 'DataGridViewRow' no está definido.

Error 3 'Rows' no es un miembro de 'System.Web.UI.WebControls.DataGrid'.


EL CODIGO DEL CODEBEHIND:

Imports System
Imports System.Data
Imports System.Data.OleDb
Imports Microsoft.VisualBasic

Partial Class Inmobiliarias_mientrasescribe
Inherits System.Web.UI.Page
Private da As OleDbDataAdapter
Private dt As DataTable
Private filas As DataGrid

Private iniciando As Boolean = True
Private conexion As String ="Provider=MSDAORA;Data Source=nombre;Password=pass;User ID=usu"
Private seleccion As String = _
"SELECT inmobiliaria, zona FROM nerea2_inmobiliarias"
Private Sub Form1_Load( _
ByVal sender As Object, _
ByVal e As EventArgs) _
Handles MyBase.Load

Me.txtApellidos.Text = ""

da = New OleDbDataAdapter(seleccion, conexion)
dt = New DataTable
da.Fill(dt)

Me.datosClientes.DataSource = dt

iniciando = False
End Sub
Private Sub txtApellidos_TextChanged( _
ByVal sender As Object, _
ByVal e As EventArgs) _
Handles txtApellidos.TextChanged

If iniciando Then Exit Sub

' Buscar en el DataTable usando el método Select
' que es como un filtro WHERE en una cadena de selección.

' El resultado se devuelve como un array de tipo DataRow
Dim filas() As DataRow

' Si solo quieres mostrar los que empiecen por lo escrito.
' Al escribir "s" se buscarán los que empiecen por esa letra.
filas = dt.Select("inmobiliaria LIKE '" & txtApellidos.Text & "%'")

' Borrar los elementos anteriores
Me.listaApellidos.Items.Clear()

' Si hay datos, mostrar los apellidos
If filas.Length > 0 Then

' Recorrer cada fila y mostrar los apellidos
For Each dr As DataRow In filas

Me.listaApellidos.Items.Add( _
dr("inmobiliaria").ToString & ", " & _
dr("zona").ToString)

Next
End If
End Sub

Private Sub listaApellidos_SelectedIndexChanged( _
ByVal sender As Object, _
ByVal e As EventArgs) _
Handles listaApellidos.SelectedIndexChanged

If iniciando Then Exit Sub

' Al hacer clic, mostrar el dato
Me.txtApellidos.Text = Me.listaApellidos.SelectedItem.ToString

' Buscarlo en el DataGridView (de forma manual, no conozco otra forma...)

' Eliminar las selecciones anteriores
Me.datosClientes.ClearSelection()

For Each fila As DataGridViewRow In Me.datosClientes.Rows
' Si es el mismo apellido del textBox

' Curiosamente si no son los mismos datos
' se produce un error de que d.Cells(...) es Nothing
' En realidad de "curioso" no tiene nada,
' es que es la última fila, que está vacía...
If fila.Cells("inmobiliaria").Value Is Nothing _
OrElse fila.Cells Is Nothing Then
Continue For
End If

' Si se quiere tener en cuenta el nombre y los apellidos
Dim i As Integer = Me.txtApellidos.Text.IndexOf(",")

If i > -1 Then
' En este ejemplo, el formato es Apellidos, Nombre
Dim nombre, apellidos As String
apellidos = Me.txtApellidos.Text.Substring(0, i).TrimEnd()
nombre = Me.txtApellidos.Text.Substring(i + 1).TrimStart()

If nombre = fila.Cells("zona").Value.ToString _
AndAlso apellidos = fila.Cells("inmobiliaria").Value.ToString Then
' Seleccionamos la fila
Me.datosClientes.Rows(fila.Index).Selected = True
' nos aseguramos de que sea visible
Me.datosClientes.FirstDisplayedScrollingRowIndex = fila.Index
Exit For
End If
Else
If Me.txtApellidos.Text = fila.Cells("inmobiliaria").Value.ToString Then
' Seleccionamos la fila
Me.datosClientes.Rows(fila.Index).Selected = True
' nos aseguramos de que sea visible
Me.datosClientes.FirstDisplayedScrollingRowIndex = fila.Index
Exit For
End If
End If
Next
End Sub

End Class
  #7 (permalink)  
Antiguo 15/04/2008, 04:37
Avatar de Javier Santamaria  
Fecha de Ingreso: julio-2007
Mensajes: 296
Antigüedad: 16 años, 9 meses
Puntos: 1
Re: AYUDAAAA gridviewrow

Hola nenure,

Prueba a ver si esto arregla los errores:

1: Esto quiere decir que ese metodo no esta disponible en el datagrid, intenta buscar uno parecido.

2: Intenta utilizar GridViewRow en lugar de DataGridViewRow

3: Prueba con items en lugar de rows

Saludos
  #8 (permalink)  
Antiguo 15/04/2008, 05:34
 
Fecha de Ingreso: marzo-2008
Mensajes: 65
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: AYUDAAAA gridviewrow

Hola Javier! Muchas gracias lo primero por contestar. He hecho lo que me has pedido excepto lo de cambiar items por Rows que no me deja, pero ahora me da otra serie de errores:

'FirstDisplayedScrollingRowIndex' no es un miembro de 'System.Web.UI.WebControls.GridView'.

'Index' no es un miembro de 'System.Web.UI.WebControls.GridViewRow'.

no se que hacer...
  #9 (permalink)  
Antiguo 15/04/2008, 21:40
Avatar de Fann_Lavigne  
Fecha de Ingreso: diciembre-2004
Mensajes: 622
Antigüedad: 19 años, 4 meses
Puntos: 12
Re: AYUDAAAA gridviewrow

Basikamente ke necesitas hacer, kual es el fin, por ke no entiendo esa parte.
__________________
"Entre Mas Brillante Es Una Mente, Tiene Que Luchar Contra Demonios Internos Mas Poderosos"
[email protected]
  #10 (permalink)  
Antiguo 16/04/2008, 00:15
 
Fecha de Ingreso: marzo-2008
Mensajes: 65
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: AYUDAAAA gridviewrow

Hola, lo que quiero hacer es que teniendo un textbox, un listbox y un gridview, me vaya buscando en el gridview lo que voy escribiendo en el textbox, es decir, yo escribo "r" en el textbox, entonces en el listbox me aparecen todos los que empiezan por r, y cuando selecciono del listbox, me selecciona en el gridview. Espero que se entienda. Gracias.
  #11 (permalink)  
Antiguo 17/04/2008, 05:43
Avatar de Javier Santamaria  
Fecha de Ingreso: julio-2007
Mensajes: 296
Antigüedad: 16 años, 9 meses
Puntos: 1
Re: AYUDAAAA gridviewrow

Hola,

Podrias decirnos en que parte exactamente del codigo te da esos errores, que creo deben ser de compilacion?, Es decri, copia el codigo y pon de otro color lo que te sale subrayado con dientes de sierra en el visual studio

Saludos
  #12 (permalink)  
Antiguo 17/04/2008, 05:57
 
Fecha de Ingreso: marzo-2008
Mensajes: 65
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: AYUDAAAA gridviewrow

Imports System
Imports System.Data
Imports System.Data.OleDb
Imports Microsoft.VisualBasic

Partial Class Inmobiliarias_mientrasescribe
Inherits System.Web.UI.Page
Private da As OleDbDataAdapter
Private dt As DataTable
Private filas As DataGrid

Private iniciando As Boolean = True
Private conexion As String ="Provider=MSDAORA;Data Source=nombre;Password=pass;User ID=usu"
Private seleccion As String = _
"SELECT inmobiliaria, zona FROM nerea2_inmobiliarias"
Private Sub Form1_Load( _
ByVal sender As Object, _
ByVal e As EventArgs) _
Handles MyBase.Load

Me.txtApellidos.Text = ""

da = New OleDbDataAdapter(seleccion, conexion)
dt = New DataTable
da.Fill(dt)

Me.datosClientes.DataSource = dt

iniciando = False
End Sub
Private Sub txtApellidos_TextChanged( _
ByVal sender As Object, _
ByVal e As EventArgs) _
Handles txtApellidos.TextChanged

If iniciando Then Exit Sub

' Buscar en el DataTable usando el método Select
' que es como un filtro WHERE en una cadena de selección.

' El resultado se devuelve como un array de tipo DataRow
Dim filas() As DataRow

' Si solo quieres mostrar los que empiecen por lo escrito.
' Al escribir "s" se buscarán los que empiecen por esa letra.
filas = dt.Select("inmobiliaria LIKE '" & txtApellidos.Text & "%'")

' Borrar los elementos anteriores
Me.listaApellidos.Items.Clear()

' Si hay datos, mostrar los apellidos
If filas.Length > 0 Then

' Recorrer cada fila y mostrar los apellidos
For Each dr As DataRow In filas

Me.listaApellidos.Items.Add( _
dr("inmobiliaria").ToString & ", " & _
dr("zona").ToString)

Next
End If
End Sub

Private Sub listaApellidos_SelectedIndexChanged( _
ByVal sender As Object, _
ByVal e As EventArgs) _
Handles listaApellidos.SelectedIndexChanged

If iniciando Then Exit Sub

' Al hacer clic, mostrar el dato
Me.txtApellidos.Text = Me.listaApellidos.SelectedItem.ToString

' Buscarlo en el DataGridView (de forma manual, no conozco otra forma...)

' Eliminar las selecciones anteriores
Me.datosClientes.ClearSelection()
For Each fila As DataGridViewRow In Me.datosClientes.Rows
' Si es el mismo apellido del textBox

' Curiosamente si no son los mismos datos
' se produce un error de que d.Cells(...) es Nothing
' En realidad de "curioso" no tiene nada,
' es que es la última fila, que está vacía...
If fila.Cells("inmobiliaria").Value Is Nothing _
OrElse fila.Cells Is Nothing Then
Continue For
End If

' Si se quiere tener en cuenta el nombre y los apellidos
Dim i As Integer = Me.txtApellidos.Text.IndexOf(",")

If i > -1 Then
' En este ejemplo, el formato es Apellidos, Nombre
Dim nombre, apellidos As String
apellidos = Me.txtApellidos.Text.Substring(0, i).TrimEnd()
nombre = Me.txtApellidos.Text.Substring(i + 1).TrimStart()

If nombre = fila.Cells("zona").Value.ToString _
AndAlso apellidos = fila.Cells("inmobiliaria").Value.ToString Then
' Seleccionamos la fila
Me.datosClientes.Rows(fila.Index).Selected = True
' nos aseguramos de que sea visible
Me.datosClientes.FirstDisplayedScrollingRowIndex = fila.IndexExit For
End If
Else
If Me.txtApellidos.Text = fila.Cells("inmobiliaria").Value.ToString Then
' Seleccionamos la fila
Me.datosClientes.Rows(fila.Index).Selected = True
' nos aseguramos de que sea visible
Me.datosClientes.FirstDisplayedScrollingRowIndex = fila.Index
Exit For
End If
End If
Next
End Sub

End Class
  #13 (permalink)  
Antiguo 17/04/2008, 06:51
Avatar de Javier Santamaria  
Fecha de Ingreso: julio-2007
Mensajes: 296
Antigüedad: 16 años, 9 meses
Puntos: 1
Re: AYUDAAAA gridviewrow

Hola,

Vamos a ver estos errores de compliacion los tienes porque estas intentando utilizar metodos que no estan disponibles en un gridview ni en un gridviewrow.

Primero fila es un gridviewrow o lo que es lo mismo una fila de un gridview. La fila como tal no tiene indice, por lo que no puedes utilizarlo como "fila.index" Si quieres saber que fila seleccionastes necesitaras llevar un contador en el bucle siguiente:

Código PHP:
For Each fila As DataGridViewRow In Me.datosClientes.Rows
' Si es el mismo apellido del textBox

Curiosamente si no son los mismos datos
' se produce un error de que d.Cells(...) es Nothing
En realidad de "curioso" no tiene nada,
 
es que es la última filaque está vacía...
If 
fila.Cells("inmobiliaria").Value Is Nothing _
OrElse fila
.Cells Is Nothing Then
Continue For
End If 
En cuanto a los errores de:

Me.datosClientes.FirstDisplayedScrollingRowIndex -> Creo que se solucionara con lo del index de la fila, porque siempre que te da lo asignas al fila.index que ya hemos dicho que esta mal.
Me.datosClientes.ClearSelection() -> Si quieres limpiar la seleccion en un gridview prueba con selectionindex=-1

Saludos
  #14 (permalink)  
Antiguo 18/04/2008, 01:31
 
Fecha de Ingreso: marzo-2008
Mensajes: 65
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: AYUDAAAA gridviewrow

Hola Javier, he hecho lo que me has dicho pero no me cuenta bien, te importa decirme como pondrias tu el contador para que funcione? Muchiiiiisiimas gracias por todo.
  #15 (permalink)  
Antiguo 18/04/2008, 03:49
Avatar de Javier Santamaria  
Fecha de Ingreso: julio-2007
Mensajes: 296
Antigüedad: 16 años, 9 meses
Puntos: 1
Re: AYUDAAAA gridviewrow

Vamos a ver viendolo mas en profundidad te reescribo un poco el for porque no entiendo muy bien que haces en el. Supongo que quieres que cuando aparezca un afila con inmobiliarias <> "" recoger esa fila. Alla vamos

Código PHP:
Dim contador as integer 0
Dim salir 
as boolean false
Dim fila 
as DataGridViewRow Me.datosClientes.Rows(i)

While 
not salir
 Si es el mismo apellido del textBox
If not fila.Cells("inmobiliaria").Value <> "" is nothing and fila.Cells("inmobiliaria").Value <> "" Then
salir 
true
else
contador contador+1
fila 
Me.datosClientes.Rows(i)
End If
end while 
Aqui tendrias en contador el numero de la primera fila con datos en inmobiliaria y en fila la fila correspondiente con todos los datos

Espero que te sirva, saludos
  #16 (permalink)  
Antiguo 18/04/2008, 04:24
 
Fecha de Ingreso: marzo-2008
Mensajes: 65
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: AYUDAAAA gridviewrow

hola... lo siento pero no me sale. Mira, mi idea es esta pero con el gridview que tengo, ojala puedas buscarle solucion, es que necesito hacerlo:

http://www.elguille.info/NET/ADONET/autoCompletar_basedatos.htm

Muchas gracias...
  #17 (permalink)  
Antiguo 18/04/2008, 04:59
Avatar de Javier Santamaria  
Fecha de Ingreso: julio-2007
Mensajes: 296
Antigüedad: 16 años, 9 meses
Puntos: 1
Re: AYUDAAAA gridviewrow

Hola he leido el articulo y viene todo perfectamente explicado (mejor de lo que lo haremos nosotros aqui en trozos de codigo suelto). Lo mejor es que lo pruebes asi y luego intentes cambiarlo para meter tu gridview (el cambio deberia ser muy sencillo, pero puede haber metodos o atributos que no sean del todo iguales).
  #18 (permalink)  
Antiguo 18/04/2008, 05:03
 
Fecha de Ingreso: marzo-2008
Mensajes: 65
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: AYUDAAAA gridviewrow

Ahi es donde tengo el fallo. Es al cambiar a mi gridview donde me da errores, como lo de la fila de index. Eso es lo que no consigo.
  #19 (permalink)  
Antiguo 18/04/2008, 07:33
Avatar de Javier Santamaria  
Fecha de Ingreso: julio-2007
Mensajes: 296
Antigüedad: 16 años, 9 meses
Puntos: 1
Re: AYUDAAAA gridviewrow

Vamos a ver si con esto te vale:

Código PHP:
Partial Class Inmobiliarias_mientrasescribe
        Inherits System
.Web.UI.Page
        
Private da As OleDbDataAdapter
        
Private dt As DataTable
        
Private filas As DataGrid 'esto para que lo quieres si utilizas el gridview???'

        
Private iniciando As Boolean True
        
Private conexion As String "Provider=MSDAORA;Data Source=nombre;Password=pass;User ID=usu"
        
Private seleccion As String _
        
"SELECT inmobiliaria, zona FROM nerea2_inmobiliarias"
        
Private Sub Form1_Load_
        ByVal sender 
As Object_
        ByVal e 
As EventArgs_
        Handles MyBase
.Load

            Me
.txtApellidos.Text ""

            
da = New OleDbDataAdapter(seleccionconexion)
            
dt = New DataTable
            da
.Fill(dt)

            
Me.datosClientes.DataSource dt

            iniciando 
False
        End Sub
        
Private Sub txtApellidos_TextChanged_
        ByVal sender 
As Object_
        ByVal e 
As EventArgs_
        Handles txtApellidos
.TextChanged

            
If iniciando Then Exit Sub

            
' Buscar en el DataTable usando el método Select
            ' 
que es como un filtro WHERE en una cadena de selección.

            
' El resultado se devuelve como un array de tipo DataRow
            Dim filas() As DataRow

            ' 
Si solo quieres mostrar los que empiecen por lo escrito.
            
' Al escribir "s" se buscarán los que empiecen por esa letra.
            filas = dt.Select("inmobiliaria LIKE '" & txtApellidos.Text & "
%'")

            ' 
Borrar los elementos anteriores
            Me
.listaApellidos.Items.Clear()

            
' Si hay datos, mostrar los apellidos
            If filas.Length > 0 Then

                ' 
Recorrer cada fila y mostrar los apellidos
                
For Each dr As DataRow In filas

                    Me
.listaApellidos.Items.Add_
                    dr
("inmobiliaria").ToString ", " _
                    dr
("zona").ToString)

                
Next
            End 
If
        
End Sub

        
Private Sub listaApellidos_SelectedIndexChanged_
        ByVal sender 
As Object_
        ByVal e 
As EventArgs_
        Handles listaApellidos
.SelectedIndexChanged

            
If iniciando Then Exit Sub

            
' Al hacer clic, mostrar el dato
            Me.txtApellidos.Text = Me.listaApellidos.SelectedItem.ToString

            ' 
Buscarlo en el DataGridView (de forma manualno conozco otra forma...)

            
' Eliminar las selecciones anteriores
            Me.datosclientes.SelectedIndex = -1
            Dim cont As Integer = 0 '
esto hace de contador
            Dim display 
As Integer 0

            
For Each fila As GridViewRow In Me.datosclientes.Rows
                
' Si es el mismo apellido del textBox

                ' 
Curiosamente si no son los mismos datos
                
' se produce un error de que d.Cells(...) es Nothing
                ' 
En realidad de "curioso" no tiene nada,
                
' es que es la última fila, que está vacía...
                If fila.Cells("inmobiliaria").Text Is Nothing OrElse fila.Cells Is Nothing Then
                    Continue For
                End If

                ' 
Si se quiere tener en cuenta el nombre y los apellidos
                Dim i 
As Integer Me.txtapellidos.Text.IndexOf(",")

                If 
> -1 Then
                    
' En este ejemplo, el formato es Apellidos, Nombre
                    Dim nombre, apellidos As String
                    apellidos = Me.txtapellidos.Text.Substring(0, i).TrimEnd()
                    nombre = Me.txtapellidos.Text.Substring(i + 1).TrimStart()

                    If nombre = fila.Cells("zona").ToString _
                    AndAlso apellidos = fila.Cells("inmobiliaria").ToString Then
                        ' 
Seleccionamos la fila
                        Me
.datosclientes.SelectedIndex cont
                        
' nos aseguramos de que sea visible, esto no se si se puede hacer en girdview, de momento dejalo, ya miraremos algo
                        '
Me.datosclientes.FirstDisplayedScrollingRowIndex fila.Index
                        
Exit For
                    
End If
                Else
                    If 
Me.txtapellidos.Text fila.Cells("inmobiliaria").ToString Then
                        
' Seleccionamos la fila
                        Me.datosclientes.SelectedIndex = cont
                        ' 
nos aseguramos de que sea visiblelo mismo de antes
                        
'Me.datosclientes.FirstDisplayedScrollingRowIndex = fila.Index
                        Exit For
                    End If
                End If
                cont = cont + 1
                display = display + 1 '
esto lo he puesto para poder mover luego las filas y hacerlas visiblespero de momento no tiene ninguna utilidad
            Next
        End Sub

    End 
Class 
Ya nos cuentas

Saludos
  #20 (permalink)  
Antiguo 21/04/2008, 08:01
 
Fecha de Ingreso: marzo-2008
Mensajes: 65
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: AYUDAAAA gridviewrow

Hola, acabo de probar, y siento decirlo pero hace exactamente lo mismo que lo que hacia el mio. Por que no funciona? Tengo el visual studio 2005, que no se si eso tendra que ver algo, me conecto con oracle oledb, utilizo un textbox, un listbox y un gridview. No se que datos mas pueden ser utiles para ver que es lo que falla! que es lo que ocurre?
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 13:22.