假设我有一个带有Foo和BarUltraGrid
列的 Infragistic 。是否可以过滤表格以便只显示Foo和Bar不相等的行?
例如,如果我有这些数据:
Foo Bar
--------
0.1 0.1
0.1 0.2
0.2 0.2
过滤器将隐藏第一行和第三行。
假设我有一个带有Foo和BarUltraGrid
列的 Infragistic 。是否可以过滤表格以便只显示Foo和Bar不相等的行?
例如,如果我有这些数据:
Foo Bar
--------
0.1 0.1
0.1 0.2
0.2 0.2
过滤器将隐藏第一行和第三行。
它比看起来更简单,我相信您不必创建额外的列或其他东西:
UltraGridColumn fooColumn = Grid.DisplayLayout.Bands[0].Columns["Foo"];
UltraGridColumn barColumn = Grid.DisplayLayout.Bands[0].Columns["Bar"];
ColumnFilter fooColumnFilter = fooColumn.Band.ColumnFilters[fooColumn];
fooColumnFilter.ClearFilterConditions();
fooColumnFilter.FilterConditions.Add(FilterComparisionOperator.NotEquals, barColumn);
您应该能够从 Grid 设计器中执行此操作;
[Foo]!=[Bar]
使用公式为您的数据源创建一个新的布尔列。DisplayLayout.Override.RowFilterMode = RowFilterMode.AllRowsInBand
.grid.DisplayLayout.Band[].ColumnFilters
,添加一个FilterLogicalOperator.And
带有新列的FilterConditions.Add(FilterComparisionOperator.Equals, true)
.由于您不允许用户切换此过滤器并且正在使用 DataTable,因此最简单的解决方案是过滤 DataTable 而不是网格。
例如,如果您的 DataTable 是 fooData,您将使用以下内容:
fooData.DefaultView.RowFilter = "Foo <> Bar";