I have a dataview that i wnat to filter as you type. i don't have a bindingsource because honestly i don't know how... :/
if have to use a binding source could you point me to agood tutorial?
my code works for what i need but i want them to be able to search the combobox.
my code:
Private Sub ProspectosMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'Fill Prospectos
Dim dt_Prospectos As DataTable
dt_Prospectos = Fill("SP_Obtiene_Prospectos", 0)
Dim dv As DataView = dt_Prospectos.AsDataView()
dv.Sort = "Compañia"
dgvProspectosMain.DataSource = dv
dgvProspectosMain.Columns("IdPros").Visible = False
dgvProspectosMain.Columns("Compañia").HeaderText = "Compañia"
dgvProspectosMain.Columns("Contacto").HeaderText = "Contacto"
dgvProspectosMain.Columns("Dir").HeaderText = "Direccion"
dgvProspectosMain.Columns("Mail").HeaderText = "Mail"
dgvProspectosMain.Columns("Telefono").HeaderText = "Telefono 1"
dgvProspectosMain.Columns("Telefono2").HeaderText = "Telefono 2"
dgvProspectosMain.Columns("Observaciones").HeaderText = "Observaciones"
dgvProspectosMain.Columns("Nombre").HeaderText = "Contacto usalentes"
dgvProspectosMain.Columns("FechaAlta").HeaderText = "Fecha de Alta"
dgvProspectosMain.Columns("IdLocalPuesto").Visible = False
'Combo Compañias
Dim dt_Co As DataTable
dt_Co = Fill("SP_Obtiene_Prospectos_Combos", 0)
cboCompañia.DataSource = dt_Co
cboCompañia.DisplayMember = "Compañia"
cboCompañia.ValueMember = "Compañia"
'Combo Contactos
Dim dt_Con As DataTable
dt_Con = Fill("SP_Obtiene_Prospectos_Combos", 1)
cboContacto.DataSource = dt_Con
cboContacto.DisplayMember = "Nombre"
cboContacto.ValueMember = "Nombre"
End Sub
Public Function Fill(itxt As String, itipo As Integer) As DataTable
Dim dt As New DataTable
Dim sda As New SqlDataAdapter
Dim cmd As New SqlCommand
Using myConn = New SqlConnection(CadenaConexion)
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandTimeout = 0
cmd.CommandText = itxt
cmd.Parameters.Add("@Tipo", SqlDbType.Int).Value = itipo
myConn.Open()
cmd.Connection = myConn
sda.SelectCommand = cmd
sda.Fill(dt)
myConn.Close()
Fill = dt
End Using
End Function
what i need is to filter on textchanged
Private Sub cboCompañia_TextChanged(sender As Object, e As EventArgs) Handles cboCompañia.TextChanged
'here i need to filter
End Sub
any help would be apreciated. Thanks!
You can just set the DataGridView.DataSource
to the DataView
...
Dim dtb As New DataTable
dtb.Columns.Add("Col1", GetType(String))
dtb.Columns.Add("Col2", GetType(String))
dtb.Columns.Add("Col3", GetType(String))
dtb.Rows.Add("A", "B", "C")
dtb.Rows.Add("C", "A", "B")
dtb.Rows.Add("B", "C", "A")
Dim dvw As DataView = New DataView(dtb)
dvw.Sort = "Col3"
dvw.RowFilter = "Col3<'C'"
DataGridView1.DataSource = dvw