0

最新の更新: 問題の回答はこちら. スタックオーバーフローの他の人にも同様の問題があり、解決されました。利便性のために提供されるソリューション。これは私が行方不明だったコード行です:

 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 つのエントリが作成されます。

私は何が欠けていますか??? とにかく、半日探した後、手を差し伸べることにしました。

記事への提案や方向性は非常に高く評価されます。

ありがとう。

4

0 に答える 0