我有一个包含此数据的XML文件。
<resultSet>
<MerchandiseAssortmentCategory>
<merchandiseAssortmentCategoryId>275</merchandiseAssortmentCategoryId>
<merchandiseAssortmentCategoryName>D21 Plywood</merchandiseAssortmentCategoryName>
<merchandiseSubordinateClasses>
<merchandiseSubordinateClass>
<merchandiseSubordinateClassNumber>2</merchandiseSubordinateClassNumber>
<merchandiseSubordinateClassDescription>SHEATHING</merchandiseSubordinateClassDescription>
</merchandiseSubordinateClass>
<merchandiseSubordinateClass>
<merchandiseSubordinateClassNumber>3</merchandiseSubordinateClassNumber>
<merchandiseSubordinateClassDescription>WAFERBOARD</merchandiseSubordinateClassDescription>
</merchandiseSubordinateClass>
<merchandiseSubordinateClass>
<merchandiseSubordinateClassNumber>4</merchandiseSubordinateClassNumber>
<merchandiseSubordinateClassDescription>SANDED</merchandiseSubordinateClassDescription>
</merchandiseSubordinateClass>
</merchandiseSubordinateClasses>
</MerchandiseAssortmentCategory>
</resultSet>
我需要使用merchandiseAssortmentCategoryName填充数据网格,并在同一行中用逗号分隔所有商品SububateClassNumber。
categoryList是dataGrid的数据提供者,定义如下:
this.categoryList= evt.result.resultSet.MerchandiseAssortmentCategory;
这就是dataGrid的定义方式
<mx:DataGrid x="466" y="73" width="192" height="225"
dataProvider="{categoryList}"
verticalScrollPolicy="on"
id="categories"
rowCount="10" enabled="true">
<mx:columns>
<mx:DataGridColumn headerText="Category name" dataField="merchandiseAssortmentCategoryName"/>
<mx:DataGridColumn headerText="Subclasses" dataField="merchandiseSubordinateClasses.merchandiseSubordinateClass.merchandiseSubordinateClassNumber"/>
</mx:columns>
</mx:DataGrid>
当我运行它时,只填写类别名称。从属类号只是空白。帮忙解决这个问题。感谢
答案 0 :(得分:3)
您将不得不编写labelFunction来返回要在列中显示的逗号分隔列表。
阅读这些有关创建custom label function的文档。以下是一些相关细节:
[开始报价]
您可以将标签功能传递给List控件,以提供确定控件中显示的文本的逻辑。标签功能必须具有以下签名:
labelFunction(item:Object):String
Label控件传入的item参数包含列表项对象。该函数必须返回要在List控件中显示的字符串。
注意:ListBase的大多数子类也采用带有上述签名的labelFunction属性。对于DataGrid和DataGridColumn控件,方法签名是labelFunction(item:Object,dataField:DataGridColumn):String,其中item包含DataGrid项对象,dataField指定DataGrid列。
...
<mx:Script><![CDATA[
public function myLabelFunc(item:Object):String {
return item.data + ", " + item.label;
}
]]></mx:Script>
[最终报价]
item object参数是您要为其生成标签的dataProvider的元素。
您可以在相关类中指定labelFunction属性:
<mx:DataGridColumn labelFunction="myLabelFunc" />
您也可以使用自定义itemRenderer执行相同的操作。
答案 1 :(得分:0)
这就是我要做的事情:
set data
方法以遍历所有子类并构建逗号分隔的字符串。