对datagridview的bindingSource进行过滤不起作用

时间:2012-08-10 15:29:25

标签: vb.net datagridview filter bindingsource

我有5个datagridviews,每个5到15列......

所以我想尝试自动过滤一点点。但我根本无法让它工作!

我的bindingSource使用A BindingList实现Sortable:http://www.tech.windowsapplication1.com/content/sortable-binding-list-custom-data-objects

我已经搜索了一段时间,但我找不到为什么我可以设置bindingSource.Filter,但它没有做任何事情:S

我找到了数据表或c#的示例,但我还没有找到一些用于Vb.net和BindingSource ......

这是我创建绑定源的代码,我添加了过滤器作为测试,它通常不在这里。

Public Function reqTable(Of T)(ByVal pTable As String, ByVal pNoProjet As Integer, 
      Optional ByVal strAdditionnalConditions As String = "") As BindingSource
    Dim lstRetour As New cclSortableBindingList(Of T)(New List(Of T))
    Dim bsRetour As New BindingSource(lstRetour, "")

    rsRequestCSV = conSQL.Execute("SELECT * FROM " & pTable & " WHERE NoProjet = " & 
        pNoProjet & " " & strAdditionnalConditions)
    With rsRequestCSV
        While Not .EOF
            lstRetour.Add(Activator.CreateInstance(GetType(T), New Object() 
                 {rsRequestCSV.Fields})) 'New clsTable(rsRequestCSV.Fields))
            .MoveNext()
        End While
    End With
    bsRetour.Filter = "Quantite < 3"
    Return bsRetour
End Function

1 个答案:

答案 0 :(得分:1)

为了使用BindingSource.Filter,基础列表(cclSortableBindingList)需要实现IBindingListView接口。 BindingList未实现此接口。

请参阅MSDN中的BindingSource.Filter Property