Vb.net 数据集上的筛选器清除所有绑定控件
下面的代码起作用(行由select表达式过滤),但是datarepeater中的所有控件都是空的。当设置为.DefaultView时,所有记录都会返回,所有控件都有其值Vb.net 数据集上的筛选器清除所有绑定控件,vb.net,winforms,filter,Vb.net,Winforms,Filter,下面的代码起作用(行由select表达式过滤),但是datarepeater中的所有控件都是空的。当设置为.DefaultView时,所有记录都会返回,所有控件都有其值 Private Sub CheckBox_FilterApplied_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox_FilterApplied.CheckedChanged If Ch
Private Sub CheckBox_FilterApplied_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox_FilterApplied.CheckedChanged
If CheckBox_FilterApplied.Checked Then
' RichTextBox_Notes.DataBindings.Add("Text", dsTransactions.Tables("TransactionHeader"), "Note")
DataRepeater_Transactions.DataSource = dsTransactions.Tables("TransactionHeader").Select("Applied = 0")
DataRepeater_Transactions.Refresh()
Else
DataRepeater_Transactions.DataSource = dsTransactions.Tables("TransactionHeader").DefaultView
End If
End Sub
看不出少了什么。刷新没有帮助。我认为问题是因为文本框的数据源和DataRepeater的数据源 我稍微修改了代码,请尝试一下。对我有用
Dim dt As New DataTable
dt.Columns.Add("Col1")
dt.Columns.Add("Col2")
dt.Columns.Add("Col3")
For index = 1 To 10
Dim dr As DataRow = dt.NewRow()
dr("Col1") = index.ToString()
dr("Col2") = index.ToString()
dr("Col3") = index.ToString()
dt.Rows.Add(dr)
Next
Dim dv As DataView = New DataView(dt, "Col1 >= 8", "", DataViewRowState.CurrentRows)
TextBox1.DataBindings.Add(New Binding("Text", dv, "Col3"))
DataRepeater1.DataSource = dv
希望它能有所帮助:)将
DefaultView
属性键入为DataView
,其IEnumerable
枚举在DataRowView
数组上,使您能够使用标准绑定语法。但是,Select
方法返回一个不能以相同方式绑定的DataRow
对象数组。最简单的解决方案是确保将DataView
传递给DataSource
属性
If CheckBox_FilterApplied.Checked Then
Dim dt As DataTable = dsTransactions.Tables("TransactionHeader")
Dim dv As DataView = New DataView(dt, "Applied = 0", "", DataViewRowState.CurrentRows)
DataRepeater_Transactions.DataSource = dv
Else
DataRepeater_Transactions.DataSource = dsTransactions.Tables("TransactionHeader")
End If
还注意到,它可以直接绑定到
DataTable
,不需要显式使用DefaultView
属性,因为默认情况下会使用该属性。我想我只需要关注筛选数据集行。在需要数据视图的地方应用数据集不应该导致错误吗?@Jeff O-你看到我在哪里应用数据集?当选中时
为true,我正在集合中的表中使用数据视图
。当选中时
为false,我使用的是来自数据集的数据表
。IIRC,甚至可以直接绑定到数据集
。大多数控件只需拉动集合中的第一张桌子。但是,这不是我在这里要做的。很抱歉(有一段时间没有看这个了),我的意思是在我的代码中,但你是对的,它不是应用的数据集。