0

我有一个包含一些列的 dataGrid,这些列通常有一个固定的 dataField,一切正常。

但是,在特殊情况下,我需要将那个dataField更改为另一个,但我不知道该怎么做。

我试图捕捉填充数据的那一刻,并以某种方式拦截 dataField 并将其更改为我想要的那个..但到目前为止还没有运气。

任何想法?。

4

1 回答 1

0

根据您到底要做什么,我可以想到三种方法。

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; }

于 2014-04-24T23:19:10.453 回答