最新の更新: 問題の回答はこちら. スタックオーバーフローの他の人にも同様の問題があり、解決されました。利便性のために提供されるソリューション。これは私が行方不明だったコード行です:
comboHeaderColumn.useLabelFunctionForFilterCompare = true;
その行の後には次のものが続きます。
comboHeaderColumn.filterComboBoxBuildFromGrid = true;
comboHeaderColumn.labelFunction = formatState;
ここで、formatState は、コンボボックスのデータをフォーマットするローカル メソッドです。
更新: コンボボックスに正しいデータが読み込まれるようになりましたが、値を選択しても何も起こりません。コンボ ボックスは、列にあるデータのみを読み込みます。コンボ ボックスで値を選択すると、その値で行がフィルター処理されます。そうではありません。
ご覧いただきありがとうございます。ExtendedDataGrid と ComboBox を使用して、Flash Builder 4 の Flex で複数のフィルターを機能させるのに問題があります。グリッドの一部の画像を次に示します。
列ヘッダーの上にあるボックスにテキストを入力すると、[ユーザー名] と [市区町村] は適切にフィルター処理され、カスタム バーをクリックすると [要求日] で日付範囲を選択できますが、[要求理由] と [状態] コンボ ボックスには何も表示されません。私は、comboHeaderColumn.filterComboBoxBuildFromGrid = true; を使用してそれらを作成しました。ただし、[オブジェクト オブジェクト] を [すべて] の下の唯一の他の選択肢として配置するだけです。
この記事を使用しましたが、グリッド全体に対して 1 つのフィルターしか使用できません。
完成したグリッドには約 20 列と 20,000 から 450,000 行のデータがあるため、フィルターは非常に重要であり、複数のフィルターが必要になります。
コードは非常に単純で、返されたすべてのデータをループ処理します。列がフィルター列として識別された場合は、次のようになります。
comboHeaderColumn.filterComboBoxDataProvider = codeValuePairs;
comboHeaderColumn.filterComboBoxLabelField = "Value";
comboHeaderColumn.filterControl = "ComboBox";
comboHeaderColumn.filterOperation = FilterExpression.FILTER_OPERATION_TYPE_EQUALS;
comboHeaderColumn.headerText = ac.Header;
comboHeaderColumn.dataField = ac.Name;
if( ac.Header == "State" || ac.Header == "Request Reason" )
{
comboHeaderColumn.filterComboBoxBuildFromGrid = true;
}
ProfileDataColumns.push(comboHeaderColumn);
これにより、コンボ ボックスに All と [object Object] の 2 つのエントリが作成されます。
私は何が欠けていますか??? とにかく、半日探した後、手を差し伸べることにしました。
記事への提案や方向性は非常に高く評価されます。
ありがとう。