所以我在表单上有一个 dataGridView 和一个文本框。我希望能够搜索 dataGridView 并将其与文本框中的字符串进行比较。前任:
我在文本框中输入“acv”,所有包含“acv”的字符串都排序到顶部。
我通过一系列涉及 datatable.select 以及一些清理和填充的体操来完成此任务,但它很丑陋且缓慢。执行此操作的最佳实践/正确/正常方法是什么?
使用已筛选的 DataView,然后将 DataGridView 的 BindingSource 设置为已筛选的 DataView。如果用户清除过滤条件,则只需将 BindingSource 设置回原始默认视图即可。我建议您在排序之前存储视图,以便您可以轻松返回到原始数据视图。我现在用它来快速排序,效果很好。将列名称替换为您的列名称。您应该能够从原始 DataGridView 修改数据视图并应用过滤器而无需重新绑定。只需在开始时将 DataGridView 绑定到 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()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)