首页 > 解决方案 > 如何隐藏数据表中的特定数据行而不删除它?

问题描述

我想隐藏数据行而不在 c# 或 vb.net 中删除它。请帮我解决一下这个。我想隐藏数据行而不在 c# 或 vb.net 中删除它。

ResultSelection.Checked = False ' Checkbox
Dim Dt As DataTable
Dim dr as datarow
Private SBind As BindingSource = New BindingSource()
With Dt
     .Columns.Add(" Name", GetType(String))
     .Columns.Add("Age" , GetType(integer))
     .Columns.Add("Marks" , GetType(integer))

dr(0) = ( "Mark",19,99)
dr(1) =  ( "Rahul",20,35)
dr(2) =  ( "Steve",19,50)

SBind.DataSource = Dt
DatargridView.DataSource = SBind

if ResultSelection.Checked = False then
    "entire row dr(2) should not be visible
else
    "entire data table should be visible along with dr(2)
end if

标签: c#vb.netdatatablewindows-forms-designerc#-to-vb.net

解决方案


您不能在 a 中隐藏行,DataTable但可以在 a中隐藏行DataView。每个默认情况下在其属性中DataTable都有一个DataView与之关联的。DefaultView当您绑定 aDataTable时,它实际上是DefaultView数据来自的。因此,您可以设置RowFilterof thatDataView以隐藏不符合某些条件的行。例如,如果您有一Sex列包含“男性”或“女性”,您可以像这样隐藏所有“男性”行:

myDataTable.DefaultView.RowFilter = "Sex = 'Female'"

绑定到它的任何控件DataTable都不会看到“男性”行,您也可以遍历DataView代码以查看过滤后的数据。

如果您正在绑定,我建议BindingSource在两者之间使用 a,在这种情况下,您可以Filter以相同的方式设置其属性。


推荐阅读