我是Flex
的新手,我正在寻找类似的东西:
<fx:Array>
<fx:Object name="Jodie" country="UK" language="English"/>
<fx:Object name="Kate" country="USA" language="English"/>
<fx:Object name="David" country="France" language="French"/>
</fx:Array>
但我希望从DB
获得的结果中动态执行此操作。
我有一个出勤计划,我希望对象的名称是“日期”,“在”,“出”
当然,我得到的结果也是值。
任何指针?
答案 0 :(得分:0)
SomeWebservice.lastResult.node&lt; =已经是一个集合(有点方便),因为你正在处理一个对象集合,你可以直接迭代它。
显然,根据使用和需要,您的XML布局会有很大差异。
您可以使用以下内容:
for each (var item:Object in GetSingleDashBoardCanvasItem.lastResult.DashboardItem)
{
在此示例中,我的返回类型是E4X,因此第一个“节点”不适用。
XML看起来像:
<myData>
<DashBoardItem> <== is like a "recordset"
<DashboardID>22</DashboardID>
<DashboardName>Marketing</DashboardName>
<somevalue>22</someValue>
</DashBoardItem>
<DashBoardItem> <== is like a "recordset"
<DashboardID>56</DashboardID>
<DashboardName>Some Other Name</DashboardName>
<somevalue>42</someValue>
</DashBoardItem>
<DashBoardItem> <== is like a "recordset"
<DashboardID></DashboardID>
<DashboardName></DashboardName>
<somevalue></someValue>
</DashBoardItem>
</myData>
如果你知道它的单一回报,你可以直接解决一个项目。
您还可以在服务回复中运行强制转换:
someList.dataProvider='{new XMLListCollection(XMLList(GetDashReportList.lastResult).ReportTemplate)}'
以上是我决定使用回复来填充列表的地方。
请注意,如果您的xml结构正确。您可以使用它来重载方便的值,在所述列表框中我现在可以获得selectedItem.AnyXMLNodeInTheRecordIwant&lt; =多个属性的方便。
等。等等你明白了。
答案 1 :(得分:0)
public function xmlLoadCompleteAudit(evt:Event):void { //此函数是报表创建的一部分,并动态地将Datagrid因子表示为表示返回的任何表,而不管其架构如何。 //Alert.show(getViewPreview.lastResult.List.Record[0].ImageName);
try{
xmlList = XML(getAuditTrail.lastResult).children();
var dgCols:Array = new Array();
AuditGrid.columns = dgCols;
var xmlColumns:XMLList = xmlList[0].children();
//Alert.show(xmlColumns.length());
for(var x:uint=0; x < xmlColumns.length(); x++){
var xml:XML = xmlColumns[x];
var col:DataGridColumn = new DataGridColumn();
if (xml.name() != 'Xlabel')
{
//Alert.show(xml.attribute("myField"));
col.headerText = xml.attribute("myField");
col.dataField = xml.name();
dgCols.push(col);
}
}
AuditGrid.columns = dgCols;
AuditGrid.dataProvider = xmlList;
}catch(e:Error){