いくつかの列を持つ dataGrid があります。これらの列には通常固定の dataField があり、すべて正常に動作します。
ただし、特別な状況下で、その dataField を別のものに変更する必要がありますが、その方法がわかりません。
データが入力されている瞬間をキャプチャして、何らかの方法で dataField を傍受し、必要なものに変更しようとしましたが、今のところうまくいきません。
何か案が?。
いくつかの列を持つ dataGrid があります。これらの列には通常固定の dataField があり、すべて正常に動作します。
ただし、特別な状況下で、その dataField を別のものに変更する必要がありますが、その方法がわかりません。
データが入力されている瞬間をキャプチャして、何らかの方法で dataField を傍受し、必要なものに変更しようとしましたが、今のところうまくいきません。
何か案が?。
あなたが何をしようとしているのかに応じて、私はそれを行う3つの方法を考えることができます.
1) 一度に列全体を交換しようとしている場合 (表示する列を選択するボタンなど)、GridColumn の dataField および headerText フィールドの値を設定できます。
<s:GridColumn id="fieldToChange" dataField="name" headerText="Name">
...
protected function changeToRank(event:MouseEvent):void
{
fieldToChange.dataField = "rank";
fieldToChange.headerText = "Rank";
}
2) 上記と同様に、状態を使用している場合は、状態ごとに dataField と headerText を指定できます。
<s:GridColumn dataField.nameState="name" dataField.rankState="rank" ...>
3) データ項目の何らかの基準に基づいて単一の行に表示されるものを変更したい場合は、labelFunction を使用して、表示したいものを設定できます。
<s:GridColumn labelFunction="nameOrRank" ...>
...
protected function nameOrRank(item:Object):String
{
if (item.foo == xyzzy)
return item.name;
else
return item.rank;
}