以下是我的XML文档示例XML,其中包含有关打印模板的元数据:
<TemplateList>
<PaperSizeTemplates PaperSize="8.5x14">
<Template>Letter ANSI A Landscape</Template>
<Template>Letter ANSI A Portrait</Template>
</PaperSizeTemplates>
<PaperSizeTemplates PaperSize="A3_11.5x16">
<Template>A3 Landscape</Template>
<Template>A3 Portrait</Template>
</PaperSizeTemplates>
<PaperSizeTemplates PaperSize="A4_8.5x11">
<Template>A4 Portrait Custom</Template>
<Template>A4 Portrait Custom1</Template>
<Template>A4 Portrait Custom2</Template>
</PaperSizeTemplates>
</TemplateList>
我有一个spark DropDownList ,我要设置其dataProvider,以便所有PaperSizeTemplates元素的PaperSize属性值显示在DropDownList中。
例如,对于上面显示的XML,我希望我的DropDownList显示以下内容:
8.5x14
A3_11.5x16
A4_8.5x11
我尝试了以下内容:
<s:DropDownList id="paperSizeDDL" dataProvider="{_layoutTemplatesXML.paperSizeTemplates.paperSize as XMLListCollection}" />
但下拉列表中没有任何内容。
非常感谢您的帮助。
请使用数据绑定和我的示例XML提供正确的方法。
谢谢!
答案 0 :(得分:1)
将声明更改为:
<s:DropDownList id="paperSizeDDL" dataProvider="{_layoutTemplatesXML.paperSizeTemplates as XMLListCollection}" labelField="@PaperSize" />
您可能必须使用'dataprovider'标记分别将XML指定为XMLListCollection。由于您没有展示如何提供XML,我只能推测。
答案 1 :(得分:1)
使用E4X声明时需要考虑的几件事情:
这里有一个关于XML-based数据结构的部分,可以作为参考帮助。
答案 2 :(得分:1)
其他答案有点落在标记上,但不起作用。请注意,@ Mike Petty关于将e4x语句中的案例与XML中使用的案例进行匹配的评论是问题的一部分。
但是,另一个问题是e4x语句返回XMLList
个对象。他们没有返回XMLListCollection
。所以这个表达式的计算结果为null:
_layoutTemplatesXML.PaperSizeTemplates as XMLListCollection
相反,请为下拉列表设置数据提供程序,如下所示:
<s:DropDownList dataProvider="{new XMLListCollection(_layoutTemplatesXML.PaperSizeTemplates.@PaperSize)}"/>
这将使用3个XML对象填充下拉列表,其值为每个大小的字符串。