Retroceder   Foros del Web > Programación para sitios web > .NET > web forms

Respuesta
 
Herramientas Desplegado
Antiguo 09-abr-2008, 04:18   #1 (permalink)
nenure ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 40
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
nenure está desconectado   Responder Citando
Antiguo 09-abr-2008, 08:06   #2 (permalink)
Javier Santamaria no se puede cailificar en este momento
 
Avatar de Javier Santamaria
 
Fecha de Ingreso: julio-2007
Mensajes: 294
Re: AYUDAAAA gridviewrow

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

Saludos
Javier Santamaria está desconectado   Responder Citando
Antiguo 09-abr-2008, 09:47   #3 (permalink)
nenure ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 40
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
nenure está desconectado   Responder Citando
Antiguo 10-abr-2008, 09:13   #4 (permalink)
Fann_Lavigne tiene algunos puntos positivos de karma
 
Avatar de Fann_Lavigne
 
Fecha de Ingreso: diciembre-2004
Mensajes: 452
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"
martinchavezf@hotmail.com
Fann_Lavigne está desconectado   Responder Citando
Antiguo 10-abr-2008, 09:46   #5 (permalink)
mahoni ha deshabilitado el karma
 
Fecha de Ingreso: julio-2006
Mensajes: 81
Re: AYUDAAAA gridviewrow

y lo que quieres hacer...
mahoni está desconectado   Responder Citando
Antiguo 10-abr-2008, 10:19   #6 (permalink)
nenure ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 40
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
nenure está desconectado   Responder Citando
Antiguo 15-abr-2008, 04:37   #7 (permalink)
Javier Santamaria no se puede cailificar en este momento
 
Avatar de Javier Santamaria
 
Fecha de Ingreso: julio-2007
Mensajes: 294
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
Javier Santamaria está desconectado   Responder Citando
Antiguo 15-abr-2008, 05:34   #8 (permalink)
nenure ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 40
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...
nenure está desconectado   Responder Citando
Antiguo 15-abr-2008, 21:40   #9 (permalink)
Fann_Lavigne tiene algunos puntos positivos de karma
 
Avatar de Fann_Lavigne
 
Fecha de Ingreso: diciembre-2004
Mensajes: 452
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"
martinchavezf@hotmail.com
Fann_Lavigne está desconectado   Responder Citando
Antiguo 16-abr-2008, 00:15   #10 (permalink)
nenure ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 40
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.
nenure está desconectado   Responder Citando
Antiguo 17-abr-2008, 05:43   #11 (permalink)
Javier Santamaria no se puede cailificar en este momento
 
Avatar de Javier Santamaria
 
Fecha de Ingreso: julio-2007
Mensajes: 294
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
Javier Santamaria está desconectado   Responder Citando
Antiguo 17-abr-2008, 05:57   #12 (permalink)
nenure ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 40
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
nenure está desconectado   Responder Citando
Antiguo 17-abr-2008, 06:51   #13 (permalink)
Javier Santamaria no se puede cailificar en este momento
 
Avatar de Javier Santamaria
 
Fecha de Ingreso: julio-2007
Mensajes: 294
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
Javier Santamaria está desconectado   Responder Citando
Antiguo 18-abr-2008, 01:31   #14 (permalink)
nenure ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 40
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.
nenure está desconectado   Responder Citando
Antiguo 18-abr-2008, 03:49   #15 (permalink)
Javier Santamaria no se puede cailificar en este momento
 
Avatar de Javier Santamaria
 
Fecha de Ingreso: julio-2007
Mensajes: 294
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
Javier Santamaria está desconectado   Responder Citando
Antiguo 18-abr-2008, 04:24   #16 (permalink)
nenure ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 40
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...
nenure está desconectado   Responder Citando
Antiguo 18-abr-2008, 04:59   #17 (permalink)
Javier Santamaria no se puede cailificar en este momento
 
Avatar de Javier Santamaria
 
Fecha de Ingreso: julio-2007
Mensajes: 294
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).
Javier Santamaria está desconectado   Responder Citando
Antiguo 18-abr-2008, 05:03   #18 (permalink)
nenure ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 40
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.
nenure está desconectado   Responder Citando
Antiguo 18-abr-2008, 07:33   #19 (permalink)
Javier Santamaria no se puede cailificar en este momento
 
Avatar de Javier Santamaria
 
Fecha de Ingreso: julio-2007
Mensajes: 294
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
Javier Santamaria está desconectado   Responder Citando
Antiguo 21-abr-2008, 08:01   #20 (permalink)