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: 19 años, 3 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(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.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 
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").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 visible, lo 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 visibles, pero de momento no tiene ninguna utilidad
            Next
        End Sub

    End 
Class 
Ya nos cuentas

Saludos