Ver Mensaje Individual
  #19 (permalink)  
Antiguo 18/04/2008, 07:33
Avatar de Javier Santamaria
Javier Santamaria
 
Fecha de Ingreso: julio-2007
Mensajes: 296
Antigüedad: 17 años, 6 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