所以我在表单上有一个 dataGridView 和一个文本框。我希望能够搜索 dataGridView 并将其与文本框中的字符串进行比较。前任: 我在文本框中输入“acv”,所有包含“acv”的字符串都排序到顶部。 我通过一系列涉及 datatable.select 以及一些清理和填充的体操来完成此任务,但它很丑陋且缓慢。执行此操作的最佳实践/正确/正常方法是什么?
最佳答案
使用已筛选的 DataView,然后将 DataGridView 的 BindingSource 设置为已筛选的 DataView。如果用户清除过滤条件,则只需将 BindingSource 设置回原始默认 View 即可。我建议您在排序之前存储 View ,以便您可以轻松返回到原始数据 View 。我现在用它来快速排序,效果很好。将列名称替换为您的列名称。您应该能够从原始 DataGridView 修改数据 View 并应用过滤器而无需重新绑定(bind)。只需在开始时将 DataGridView 绑定(bind)到 DataView,然后检索 DataView(即 DataSource)并进行修改即可。我不确定您是否使用 BindingNavigator。祝你好运。
Dim myDataTable As DataTable = myDataSet.Tables(0)
Dim myDataView As New DataView(myDataTable)
myDataView.RowFilter = "CompanyName LIKE '%" & ddlAlpha.SelectedItem.Text & "%'"
myDataView.Sort = "ContactName"
dataGridView1.DataSource = myDataView
dataGridView1.DataBind()
关于.net - vb.net dataTable/DataGridView 搜索/排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1752040/