2

x と Y の 2 つの列があります。2 つの列の値に基づいてグリッドをフィルター処理する必要があります。例: フィルター条件が true であると仮定すると、両方の列の値をチェックし、列の値のいずれかが true の場合、行をフィルター処理する必要はありません。どの値も true でない場合は、行をフィルター処理する必要があります。

4

1 に答える 1

9

これに対する1つの簡単な解決策を考えることができます。以下のコードは、2 つの列に通常のフィルターを設定してから、列の LogicalOperator を変更するだけです。

    private void Filter() {
        Infragistics.Win.UltraWinGrid.FilterCondition fc = new Infragistics.Win.UltraWinGrid.FilterCondition();
        fc.CompareValue = "someValue1";
        fc.ComparisionOperator = Infragistics.Win.UltraWinGrid.FilterComparisionOperator.Equals;
        ultraGrid1.DisplayLayout.Bands[0].ColumnFilters["col_x"].FilterConditions.Add(fc);

        Infragistics.Win.UltraWinGrid.FilterCondition fc2 = new Infragistics.Win.UltraWinGrid.FilterCondition();
        fc2.CompareValue = "someValue2";
        fc2.ComparisionOperator = Infragistics.Win.UltraWinGrid.FilterComparisionOperator.Equals;
        ultraGrid1.DisplayLayout.Bands[0].ColumnFilters["col_y"].FilterConditions.Add(fc2);

        // set the logical operator of the columns on the band
        ultraGrid1.DisplayLayout.Bands[0].ColumnFilters.LogicalOperator = Infragistics.Win.UltraWinGrid.FilterLogicalOperator.Or;
    }

これはあなたが探していたものですか?

于 2012-12-12T22:16:24.523 に答える