Imports Infragistics.Win Imports Infragistics.Win.UltraWinGrid
フィルター行は列ヘッダ領域にある 固定行で、指定した基準に一致しない行を非表示にする手段をユーザーに提供します。フィルター行機能を使用すると、他の行のフィルタリング条件値を入力するためのフィルター行が表示されます。これによりユーザーは、WinGrid 内の行または行セットを直感的で簡便な操作によって特定できます。フィルター行のセルに入力される値はフィルター オペランドです。フィルター演算子を選択するためのユーザー インターフェイス エレメントをフィルター行に表示することもできます。フィルター演算子は、行フィルタリング時にセルの値をフィルター オペランドとどのように比較するか("is greater than" や "starts with" など)を決定します。グリッドのルート バンド内のフィルター行は固定できます(上下にスクロールしても画面上からなくなりません)。
コードの記述を開始する前にコード ビハインドに using/imports のディレクティブを配置します。そうすれば、メンバは完全に記述された名前を常に入力する必要がなくなります。
Visual Basic の場合:
Imports Infragistics.Win Imports Infragistics.Win.UltraWinGrid
C# の場合:
using Infragistics.Win; using Infragistics.Win.UltraWinGrid;
フィルター行を使用するためには、まず AllowRowFiltering を有効にする必要があります。
Visual Basic の場合:
Me.UltraGrid1.DisplayLayout.Override.AllowRowFiltering = _ DefaultableBoolean.True
C# の場合:
this.ultraGrid1.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.True;
次に、FilterUIType プロパティを設定できます。このプロパティは、行のフィルタリングのために表示するユーザー インターフェイスのタイプを指定します。オプションは、「列ヘッダにフィルター アイコンを表示する」と「フィルター行を表示する」の 2 つです。このプロパティを有効にするためには、AllowRowFiltering プロパティを True に設定する必要があります。
Visual Basic の場合:
Me.UltraGrid1.DisplayLayout.Override.FilterUIType = _ FilterUIType.FilterRow
C# の場合:
this.ultraGrid1.DisplayLayout.Override.FilterUIType = FilterUIType.FilterRow;
WinGrid がフィルターをいつ適用するかを指定できます。FilterEvaluationTrigger は、何が起こったときに行フィルタリングを実行するかを指定します。デフォルトでは、ユーザーがフィルター演算子またはフィルター オペランドの値を変更すると同時にフィルターが適用されます。
Visual Basic の場合:
' ユーザーがセルから離れたときにフィルターを適用するよう設定します。 Me.UltraGrid1.DisplayLayout.Override.FilterEvaluationTrigger = _ FilterEvaluationTrigger.OnLeaveCell
C# の場合:
// ユーザーがセルから離れたときにフィルターを適用するよう設定します。 this.ultraGrid1.DisplayLayout.Override.FilterEvaluationTrigger = FilterEvaluationTrigger.OnLeaveCell;
Visual Basic の場合:
Me.UltraGrid1.DisplayLayout.Override.FilterOperatorDefaultValue = _ FilterOperatorDefaultValue.DoesNotContain
C# の場合:
this.ultraGrid1.DisplayLayout.Override.FilterOperatorDefaultValue = FilterOperatorDefaultValue.DoesNotContain;
Visual Basic の場合:
Me.UltraGrid1.DisplayLayout.Override.FilterOperandStyle = _ FilterOperandStyle.DropDownList
C# の場合:
this.ultraGrid1.DisplayLayout.Override.FilterOperandStyle = FilterOperandStyle.DropDownList;
Visual Basic の場合:
Me.UltraGrid1.DisplayLayout.Override.FilterOperatorLocation = _ FilterOperatorLocation.WithOperand
C# の場合:
this.ultraGrid1.DisplayLayout.Override.FilterOperatorLocation = FilterOperatorLocation.WithOperand;
Visual Basic の場合:
Me.UltraGrid1.DisplayLayout.Override.FilterOperatorDropDownItems = _ FilterOperatorDropDownItems.All
C# の場合:
this.ultraGrid1.DisplayLayout.Override.FilterOperatorDropDownItems = FilterOperatorDropDownItems.All;
Visual Basic の場合:
Me.UltraGrid1.DisplayLayout.Override.FilterClearButtonLocation = _ FilterClearButtonLocation.Row
C# の場合:
this.ultraGrid1.DisplayLayout.Override.FilterClearButtonLocation = FilterClearButtonLocation.Row;
その他の関連する設定として、FilterRowPrompt プロパティがあります。このプロパティは、フィルター行に表示するプロンプト テキストを指定します。デフォルトでは、プロンプトは空の文字列です。プロンプトはフィルター行がアクティブになると消えます(アクティブ状態でなくなると再び表示されます)。
Visual Basic の場合:
Me.UltraGrid1.DisplayLayout.Override.FilterRowPrompt = _ "Click here to filter rows..."
C# の場合:
this.ultraGrid1.DisplayLayout.Override.FilterRowPrompt = "Click here to filter rows...";
このプロンプトの表示を単一のセルに制限するには、UltraGridBand.SpecialRowPromptField を設定します。
Visual Basic の場合:
' 列の名前が "ContactTitle" の場合 Me.UltraGrid1.DisplayLayout.Bands(0).SpecialRowPromptField = "ContactTitle"
C# の場合:
// 列の名前が "ContactTitle" の場合 this.ultraGrid1.DisplayLayout.Bands[0].SpecialRowPromptField = "ContactTitle";
フィルター行の表示スタイルの設定には、次の 4 つの外観設定を使用できます。
次のスクリーンショットは、フィルター行機能を使用した WinGrid を示します。このフィルター行には、オペランドの左側に演算子ユーザー インターフェイスがあります。クリックすると、フィルター演算子ドロップダウンが表示され、演算子を選択できます。行セレクタ内のボタンは、すべての列のフィルターをクリアするボタンです。