【问题标题】:How to hide particular data row in a datatable without deleting it?如何隐藏数据表中的特定数据行而不删除它?
【发布时间】:2019-11-12 09:13:39
【问题描述】:

我想隐藏一个数据行而不在 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

【问题讨论】:

  • 我们需要更多解释和一些代码。
  • DataTable 只是一种以逻辑方式存储数据的方式,而不是视觉方式
  • 想想@Jules 说的,你说的是DataGridView 而不是DataTable。还是您使用 DataTable 作为 DataGridView 的源?

标签: c# vb.net datatable windows-forms-designer c#-to-vb.net


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-14
    • 1970-01-01
    • 2016-01-23
    • 1970-01-01
    相关资源
    最近更新 更多