4

UltraGridFooBarを持つ Infragistic があるとします。FooBarが等しくない行のみが表示されるようにテーブルをフィルタリングすることは可能ですか?

たとえば、次のデータがあるとします。

Foo  Bar
--------
0.1  0.1
0.1  0.2
0.2  0.2

フィルターは、1 行目と 3 行目を非表示にします。

4

3 に答える 3

5

見た目よりも簡単で、追加の列などを作成する必要はないと確信しています。

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);
于 2012-08-06T08:43:34.337 に答える
1

ユーザーがこのフィルターを切り替えることを許可せず、DataTableを使用しているため、最も簡単な解決策は、グリッドではなくDataTableをフィルター処理することです。

たとえば、DataTableがfooDataの場合、次のように使用します。

fooData.DefaultView.RowFilter = "Foo <> Bar";
于 2012-07-08T20:35:05.227 に答える
1

これはグリッド デザイナーから実行できるはずです。

  1. 数式[Foo]!=[Bar]を使用して新しいブール列をデータ ソースに作成します。
  2. 非表示の列をグリッドに追加し、グリッドの を設定しますDisplayLayout.Override.RowFilterMode = RowFilterMode.AllRowsInBand
  3. で、新しい列の を使用してgrid.DisplayLayout.Band[].ColumnFilters新しい を追加します。FilterLogicalOperator.AndFilterConditions.Add(FilterComparisionOperator.Equals, true)
于 2012-06-14T19:23:34.277 に答える