所以我一直在尝试将XML文件中的数据加载到数据网格中。该项目位于Cairngorm框架内。 XML文件位于Web内容文件夹中。我在Services文件夹中有一个HTTPService调用。
<mx:HTTPService
id = "getCategory"
url = "assets/CategoryDept21Class1.xml"
resultFormat = "e4x"
/>
当我在一个dataGrid中进行选择时,应该使用XML文件中的数据填充另一个dataGrid。下面是Classes datagrid。当我点击一个类时,它应该填充下一个数据网格。
<mx:DataGrid rowCount="10" enabled="true"
dataProvider="{classList}"
verticalScrollPolicy="on"
click = "onClass()"
id="classes" width="192" top="73" left="253" height="225">
<mx:columns>
<mx:DataGridColumn headerText="#" dataField="merchandiseClassNumber" width="50"/>
<mx:DataGridColumn headerText="Class Name" dataField="merchandiseClassDescription" width="150"/>
</mx:columns>
</mx:DataGrid>
这些是将被触发的方法。
private function selectClass(evt:ResultEvent):void{
//this.categoryList = new XMLListCollection(evt.result.resultSet);
this.categoryList= evt.result.resultSet.MerchandiseAssortmentCategory;
var request:AMTCategoryEvent;
CairngormEventDispatcher.getInstance().dispatchEvent(request);
}
private function onClass():void{
//Alert.show("you just clicked on a class ");
var event:AMTCategoryEvent = new AMTCategoryEvent();
CairngormEventDispatcher.getInstance().dispatchEvent(event);
}
这就是我在我的委托中定义getCategory()的方式
public function getCategory() : void
{
service = ServiceLocator.getInstance().getHTTPService("getCategory") as HTTPService;
//Alert.show(service.url);
var token : AsyncToken = service.send();
token.addResponder(responder);
}
这就是我在getCategoryCommand中的内容。
public function execute(event: CairngormEvent) : void{
var categoryEvent: AMTCategoryEvent = event as AMTCategoryEvent;
var deleg:Delegate = new Delegate(this);
deleg.getCategory();
//deleg.getCategory(categoryEvent.deptNumber, categoryEvent.classNum);
}
public function result(info:Object) :void{
trace("Get Category: Success");
// __model.categoryList = new XMLList(info.result.resultSet.MerchandiseAssortmentCategory);
var xmlbleh:XMLList=info.result.resultSet.MerchandiseAssortmentCategory.lastResult;
mx.controls.Alert.show(xmlbleh.toXMLString());
__model.categoryList = new XMLListCollection(XMLList(info.result.resultSet.MerchandiseAssortmentCategory.lastResult));
}
由于某种原因,它不会将xml文件中的数据读入数据网格。这是我在这个网站上的第一个问题,如果我的问题很明确,我不知道。但是我该怎么做?谢谢:))
答案 0 :(得分:1)
问题很清楚,但您可能有额外的信息可能有用。我将尝试通过一系列问题来阐明这些问题。 (这可能属于评论,但存在大小限制,可能会变得很麻烦)
1-我希望你设法在你的委托中获得HttpService的引用。
2-我希望您能够调试,直到进行异步服务调用。
3-我假设从不调用结果回调函数。 (或者就此而言是错误的。)
4-我假设应用程序部署在Web服务器中。
如果我的所有假设都是正确的,那么问题可能在于url的形成。我假设您正在尝试提供相对路径,但我会尝试提供绝对URL。如果问题在于url,那么服务调用应该已经记录在你的背景中,你应该看到一条错误消息,如404)。
如果没有明显的错误消息,则可能是安全错误。您是否提供了跨域策略文件。
如果我的任何假设有误,请填写必要的信息。另请提供Flex SDK版本。
注意:如果您将其作为独立应用程序运行,则除非您在Flash Builder中提供其他属性,否则存在不允许您从文件系统读取的安全约束。