Flex将XML上传到datagrid/数据库
在我们的项目中,我们需要浏览并上传一个XML文件,并将其显示在datagrid上,编辑网格,然后将内容保存到数据库中。我能够看到从特定文件夹中提取XML并显示在datagrid上的示例,但看不到任何浏览XML然后上传的示例。如果有人能给我提供一些示例或示例代码,那就太好了。我们的XML看起来像:Flex将XML上传到datagrid/数据库,xml,apache-flex,datagrid,upload,arraycollection,Xml,Apache Flex,Datagrid,Upload,Arraycollection,在我们的项目中,我们需要浏览并上传一个XML文件,并将其显示在datagrid上,编辑网格,然后将内容保存到数据库中。我能够看到从特定文件夹中提取XML并显示在datagrid上的示例,但看不到任何浏览XML然后上传的示例。如果有人能给我提供一些示例或示例代码,那就太好了。我们的XML看起来像: <VisitImportList> <Visit> <AuditDetails> <UpdateUser>
<VisitImportList>
<Visit>
<AuditDetails>
<UpdateUser>ADMIN</UpdateUser>
<UpdateTimestamp>2010-10-22T16:25:26.593Z</UpdateTimestamp>
</AuditDetails>
<VisitId>3</VisitId>
<MeasurementCollectionId>4</MeasurementCollectionId>
<WeightConfirmationCode>5</WeightConfirmationCode>
<PrefilledIndicator>true</PrefilledIndicator>
<VisitDate>2010-10-22T16:25:26.593Z</VisitDate>
</Visit>
<Visit>
<AuditDetails>
<UpdateUser>ADMIN</UpdateUser>
<UpdateTimestamp>2010-10-22T16:25:26.593Z</UpdateTimestamp>
</AuditDetails>
<VisitId>3</VisitId>
<MeasurementCollectionId>3</MeasurementCollectionId>
<BloodPressureConfirmationCode>4</BloodPressureConfirmationCode>
<PrefilledIndicator>true</PrefilledIndicator>
<VisitInvalidCode>1</VisitInvalidCode>
<VisitInvalidReasonText>No Dates</VisitInvalidReasonText>
</Visit>
</VisitImportList>
现在我的arraycollection(tempCollection)中有了数据。但它包含通用对象,我需要将它们转换为访问对象。因此,我想在ArrayCollection中循环,将对象转换为特定的自定义访问对象,然后将它们添加到另一个集合中(我确定这不是正确的方法,但我无法找到替代方法):
for(变量i:int=0;i
那么,有人可以帮助您循环ArrayCollection并将AS对象转换为custom Visit对象,然后添加到另一个ArrayCollection或更简单的方法吗
谢谢
Harish如果您正在使用AIR应用程序,您可以使用Flex中的文件和文件流对象轻松访问计算机中的资源 获取XML对象,然后从其item命令将其转换为XMLListCollection,即
var xmlProvider:XMLListCollection = new XMLListCollection(xml.Visit);
将此提供程序设置为您的数据网格,并编写脚本以按您所需的方式上载和保存此数据
但是,如果您正在编写web应用程序,则应该这样做。您无法访问客户端上不在flex temp文件路径中的资源。或者,您必须使用“”为客户机上的文件夹/文件授予flex访问权限。在这种情况下,应使用相同的空气api
但是,如果您也不希望这样做,那么显然您必须在服务器上上载文件,在客户端使用HTTPService读取该对象,创建XMLListCollection对象并将数据加载到DataGrid中。这会有帮助的
谢谢法希姆。我能够使用用于浏览/上传和XML/XMLListCollection的FileReference在datagrid上显示。但是现在我在保存到数据库时遇到了另一个问题。我已将此附在主要问题之后。请帮助任何人这是最简单的方法。。。真棒的法希姆,几乎解决了除了一个问题:)。visit.visitDate=VisitNode.visitDate;这里我得到一个错误:类型强制失败:无法转换XMLList@1d76eee9迄今为止。我需要格式化日期吗?如何请。对不起我的坏…新的日期(字符串)修复它。非常感谢法希姆。谢谢。我会认为你的答案是对的。非常感谢:)。如果还有其他问题,将返回此处:)
for (var i:int = 0; i < tempCollection.length; ++i)
{
model.visit = new Visit();
model.visit = Visit(tempCollection.getItemAt(i, 0)); // This line gives the error Type Coercion failed: cannot convert Object@1d4e4719 to com.model.Visit.
model.visit = tempCollection.getItemAt(i) as Visit; // This line always has Visit as null eventhough the tempCollection has 2 objects
model.pvList.visits.addItemAt(Visit, i);
}
var xmlProvider:XMLListCollection = new XMLListCollection(xml.Visit);