0

私はFLEX4に取り組んでいますが、FLEX4comboboxに関して奇妙な問題に遭遇しました。ドロップダウンリストとは異なり、コンボボックスではユーザーが値を入力でき、コンボボックスには提案された値のリストが表示されます。私の問題はこれです:コンボボックスはユーザーが無意味な値を入力して保存することを許可しているようです。たとえば、下の画像では、許可される値のリストは1982年から2040年までの年のコレクションです。

ここに画像の説明を入力してください

ただし、ユーザーはコンボボックスに「test」と入力して[保存]をクリックできます。最終的な結果は、終了四半期/終了年のペアが3テストになることです。明らかに、これは無意味な値です。

なぜこうなった?これを防ぐ方法はありますか?ドロップダウンリストに簡単に切り替えることができることは知っていますが、「推奨値」機能のためにコンボボックスを保持することを好みます。

フォローアップの質問:どんな修正があったとしても、それを「グローバルに」行うことは可能ですか?つまり、コードのある時点で修正を行うことができ、それはプロジェクト全体で有効になりますか?

ありがとう。

4

1 に答える 1

1

これは、このタイプのコントロールのかなり標準的な動作です。何が入力を有効または無効にするのComboBoxかわかりません。これはあらゆる入力を受け入れるように設計されており、入力がアプリケーションに適切であることを検証するのは私たちの責任です。

あなたができることがいくつかあります、これらのいくつかの組み合わせが役立つはずです:

  • のrestrictプロパティをComboBox、文字列「0123456789」のように、入力を許可する有効な文字のみを含む文字列に設定します。

  • maxCharsプロパティを使用して、入力を4文字に制限します。

  • labelToItemFunctionプロパティを試してみてください。これを、ユーザーの入力に基づいて選択する値を決定する関数に設定できます。

  • NumberValidatorまたはDateValidatorを使用して、ユーザーが適切な値を入力したことを検証します(または、このロジックを保存ボタンのクリックハンドラーに自分で追加します)

  • (おそらくあまり役​​に立たない)itemMatchingFunctionプロパティをいじってみてください。これを使用すると、無意味な入力を使用するのではなく、デフォルトとして最初/最後(またはその他)の値を自動的に選択できる場合があります。

于 2012-11-27T04:59:57.780 に答える