我有一个包含一些列的dataGrid,这些列通常都有一个固定的dataField,一切正常。
但是,在特殊情况下,我需要将dataField更改为另一个,但我不知道该怎么做。
我试图抓住数据被填充的时刻,并以某种方式截取dataField并将其更改为我想要的那个..但到目前为止没有运气。
任何想法?。
答案 0 :(得分: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;
}