vb.net - DataTable RowFilter 正在取消选中 CheckedListBox 中的复选框
问题描述
我在文本框上设置了搜索功能。当文本输入到框中时,checkedlistbox 可见项被过滤。当您选中其中一个可见框,然后删除搜索文本时,选中的项目将失去其选中。有没有办法解决?
搜索框:
Private Sub txtSearchBidder_TextChanged(sender As Object, e As EventArgs) Handles txtSearchBidder.TextChanged
If Not String.IsNullOrWhiteSpace(txtSearchBidder.Text) Then
dtBidder.DefaultView.RowFilter = "Bidders LIKE '%" & txtSearchBidder.Text & "%'"
End If
End Sub
选中列表框:
Dim dtBidder as new DataTable
dtBidder.Columns.Add("Bidders")
For Each bidder As String In cmd1.Parameters("@Bidders").Value.ToString().Split(",")
dtBidder.Rows.Add(bidder)
Next
Dim source1 As New BindingSource()
source1.DataSource = dtBidder
chkListBidders.BindingContext = New BindingContext()
chkListBidders.DataSource = source1
chkListBidders.DisplayMember = "Bidders"
chkListBidders.ValueMember = "Bidders"
解决方案
如建议的那样,控件或绑定中没有任何内容可以为您执行此操作,因此您需要自己做,例如
Dim checkedItems = CheckedListBox1.CheckedItems.Cast(Of DataRowView)().ToArray()
'Perform filtering here.
For i = 0 To CheckedListBox1.Items.Count - 1
CheckedListBox1.SetItemChecked(i, checkedItems.Contains(DirectCast(CheckedListBox1.Items(i), DataRowView)))
Next
推荐阅读
- javascript - JavaScript Azure Function stacktrace 中没有我的代码
- postgresql - 在 PostgreSQL 中存储任意精度整数
- html - Scroll in a deeply nested flex container - min-height not working
- vb.net - 修复错误目标主体名称不正确
- html - 背景图像在 chrome 中重复但不是 safari
- python - Python modify text file by the name of arguments
- matplotlib - matplotlib colorbar: need to force scientific notation with exponent at top of bar
- .net - How to do this?: DataTable.Select("[Enabled].ToUpper ='TRUE'")
- kubernetes - GCloud IAM 角色中的权限如何在 Kubernetes 集群中实现?
- php - 如果内容中存在 iframe,如何将 iframe / 视频替换为另一个 div?