【问题标题】:flex 3 datagrid and xmllistcollectionflex 3 数据网格和 xmllistcollection
【发布时间】:2010-12-22 12:11:34
【问题描述】:
我试图在我的数据网格的不同字段中显示 xmllistcollection 的内容,但是除非我使用 itemrenderer,否则该值不会显示在网格中。
xmllistcollection 是通过 web 服务调用填充的。在我的项目渲染器中,我使用自定义命名空间从 xmllistcollection 检索内容
value.ns::firstName
但是,如果我在数据网格中尝试类似 dataField = "ns::firstName" 之类的东西而不使用项目渲染器,我将没有数据输出。
谁能帮帮我?
【问题讨论】:
标签:
apache-flex
datagrid
itemrenderers
【解决方案1】:
使用labelFunctionproperty。
<mx:DataGrid dataProvider="{xml.ns::user}">
<mx:columns>
<mx:DataGridColumn labelFunction="nameLabelFunc" headerText="Name"/>
<mx:DataGridColumn labelFunction="ageLabelFunc" headerText="Age"/>
</mx:columns>
</mx:DataGrid>
<mx:XML source="data.xml" id="xml"/>
<mx:Script>
<![CDATA[
import mx.controls.dataGridClasses.DataGridColumn;
private var ns:Namespace = new Namespace("http://www.adobe.com");
public function nameLabelFunc(item:Object, col:DataGridColumn):String
{
return item.ns::name;
}
public function ageLabelFunc(item:Object, col:DataGridColumn):String
{
return item.ns::age;
}
]]>
</mx:Script>
data.xml
<userInfo xmlns="http://www.adobe.com">
<user>
<name>John</name>
<age>34</age>
</user>
<user>
<name>Gessy</name>
<age>32</age>
</user>
</userInfo>