我有一个DatagridView(DatagridView1),我从数据库填充:
Me.DatagridView1.DataSource = DataTable1
然后我将2列(Icon& Status)添加到我的dataGridView,其中一个带有图标,另一个带有描述,具体取决于从DataTable1检索的值(通常是错误,警告等)
然后我有一个下拉列表(DropDown1),其中包含值'全部'错误'错误'警告'等
我想基于DropDown1中的选定值过滤我的DataGridView。 例如如果'错误'选中我只会显示“'错误'在“状态”列中。 我使用以下代码:
Private Sub DropDown1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DropDown1.SelectedIndexChanged
Dim dt As New DataTable()
dt = TryCast(DatagridView1.DataSource, DataTable)
If dt IsNot Nothing Then
dt.DefaultView.RowFilter = String.Format("Status Like '*" & Trim(Me.DropDown1.Text.ToString) & "*'")
End If
End Sub
现在我有两个问题:
答案 0 :(得分:1)
我认为这应该清除你的过滤器
dt.DefaultView.RowFilter = ""
要检索列,您必须从DataGridView本身访问它们
DatagridView1.Rows(x).Cells(y).value
答案 1 :(得分:0)
好的,我有解决方案。 首先要感谢theBurger dt.DefaultView.RowFilter =""确实清除过滤器。
关于数据源问题是我将列直接添加到网格中,而不是将它们添加到我的数据表中,然后刷新数据网格。