Flex+;XML+;dataProvider:将dataProvider指定给ComboBox时出现问题&;数据网格
我从使用[lastResult]属性访问的PHP脚本中获得XML响应。Flex+;XML+;dataProvider:将dataProvider指定给ComboBox时出现问题&;数据网格,xml,apache-flex,Xml,Apache Flex,我从使用[lastResult]属性访问的PHP脚本中获得XML响应。 问题如下: XML结构: <Main> <Category1> <Data Name="Data1"> <Item> <Name>foo</Name> <Info>bar</Info> </Item> <Item>
问题如下:
XML结构:
<Main>
<Category1>
<Data Name="Data1">
<Item>
<Name>foo</Name>
<Info>bar</Info>
</Item>
<Item>
<Name>baz</Name>
<Info>FOO</Info>
</Item>
</Data>
<Data Name="Data2">
</Data>
</Category1>
<Category2>
</Category2>
</Main>
这很好&我的数据输出正确。我唯一需要的是如何访问
标记的@Name属性。我可以通过指定以下内容输出项目的名称和信息:
'Name'
'Info'
但是当我选择Data.Item作为数据提供者时,我不知道如何指定父
标记的@Name属性
据我所知,我需要上升1级到父节点,但我找不到任何参考,以便在使用[lastResult]dataProvider时如何上升1级(所有人都在使用XMLListCollection::parent())感谢您的帮助 问候,
Nisheeth Barthwal
lastResult.Category1.Data.(@Name==“Data1”)。Item
提供在Data1中找到的项的XML列表。每个项都是XML类型,您可以调用parent()
函数get parent node:
//get first item
var item:XML = lastResult.Category1.Data.(@Name == "Data1").Item[0];
trace("Data.@Name: " + item.parent().@Name);
Edit:要使其在DataGrid中工作,需要使用列的labelFunction
属性。将其设置为:
function formatItem(item:Object, column:DataGridColumn):String {
return (item as XML).parent().@Name;
}
但我想在DataGrid的dataField属性中使用它。dataField=“parent()。@Name”不起作用,dataField=“(parent()。@Name)”当dataProvider=“{lastResult.Category1.Data.(@Name==“Data1”).Item}”编辑时,dataField=“(parent()。@Name)”也不起作用,但在{..}(lastResult.Category1.Data.(@Name==“Data1”).Item.parent()}内的dataField中不起作用
function formatItem(item:Object, column:DataGridColumn):String {
return (item as XML).parent().@Name;
}