在Flex Datagrid中填充数组

时间:2009-07-11 10:26:42

标签: php flex

我从PHP获取返回类型为数组。当我在我的数据网格中填充时,值不会出现......我不会解释为什么会发生这样的事情。

var appSes:Array = event.result as Array
dg.dataProvider = appSes;

我正在获取这些值,从PHP开始我还有其他任何事情。

<local:CheckBoxDataGrid id="dg" 
                    allowMultipleSelection="true"   x="118" y="142" width="507">
        <local:columns>
            <mx:DataGridColumn dataField="firstName" headerText=" " width="20" sortable="false" itemRenderer="CheckBoxRenderer" > 
            </mx:DataGridColumn>
            <mx:DataGridColumn dataField="firstName" headerText="First Name" />
            <mx:DataGridColumn dataField="lastName" headerText="Last Name" />
        </local:columns>
    </local:CheckBoxDataGrid>

1 个答案:

答案 0 :(得分:0)

使用ArrayCollection而不是Array。通常,在绑定到列表,网格等的dataProviders时应始终使用ArrayCollections,因为它们可以识别属性更改,并且只要在其中添加,删除或更改对象,就会通知List。数组不提供此行为。

将您的var更改为此

var appSes:ArrayCollection = new ArrayCollection(event.result);
dg.dataProvider = appSes;

我倾向于将我的视图绑定到模型对象,而不是像你一样明确地设置它们。如果我创建一个新的ArrayCollection实例(例如,从服务器刷新数据时)的好处是,我可以正确更新,而不需要任何额外的工作。

因此,我会这样做:

<local:CheckBoxDataGrid id="dg" dataProvider="{appSes}" ....