[心缘地方]同学录
首页 | 功能说明 | 站长通知 | 最近更新 | 编码查看转换 | 代码下载 | 常见问题及讨论 | 《深入解析ASP核心技术》 | 王小鸭自动发工资条VBA版
登录系统:用户名: 密码: 如果要讨论问题,请先注册。

[备忘]Flex调用Web Service,返回数据是一条时,报错的问题

上一篇:[备忘]hibernate如何快速复制已有的对象,来新增记录
下一篇:[备忘] 减档时,先点刹车,速度降下来后,踩离合,换挡~~

添加日期:2013/4/9 16:55:43 快速返回   返回列表 阅读3686次
简单的说,后台返回多条数据时,flex返回的是一个List,
后台返回一条数据时,Flex回来的是一个ObjectProxy对象。所以导致错误。

解决办法,就是处理一下,始终放在一个ArrayCollection中。

import com.adobe.serializers.utility.TypeUtility;

//版本列表
[Bindable]
private var versionArray:ArrayCollection = new ArrayCollection();


getVersionListResult.token = versionWebService.getVersionList();
getVersionListResult.token.addResponder(new AsyncResponder(
    function(event:ResultEvent, token:Object):void {
        //单条数据需要特殊处理
        if(event.result!=null){
            if(event.result is ObjectProxy)
            {
                //查询结果只有一条时,返回的是ObjectProxy,需要转型
                var oneData:Version = TypeUtility.convertToStrongType(event.result,Version) as Version; //强转类型
                versionArray.addItem(oneData);
            }else
            {
                //多条数据时,就是List了。
                versionArray = ArrayCollection(event.result);
            }
        }
        if(versionArray.length==0)
        {
            Alert.show("没有其它版本可以导入。");
        }
    },
    function(info:Object, token:Object):void {
        Alert.show("Error: " + info);
    },
    getVersionListResult.token
));



绑定:


<s:DropDownList id="versionList" width="300" dataProvider="{versionArray}"
creationComplete="versionList_creationCompleteHandler(event)" 
labelField="versionNumber">
</s:DropDownList>



很麻烦~~
 

评论 COMMENTS
没有评论 No Comments.

添加评论 Add new comment.
昵称 Name:
评论内容 Comment:
验证码(不区分大小写)
Validation Code:
(not case sensitive)
看不清?点这里换一张!(Change it here!)
 
评论由管理员查看后才能显示。the comment will be showed after it is checked by admin.
CopyRight © 心缘地方 2005-2999. All Rights Reserved