关于网友Flex问题相关解答
问题:
我用HttpService和jsp通讯,当jsp返回的数据只有一行的时候flex的DataGrid和Repeater都不能显示出数据,非要超过一行的数据才行,我试过将flex那个HttpService的例子里的jsp改成输出数据只有一行,也是不能显示,请问有什么办法解决吗?
解答:
flex对HttpService返回的xml形式的数据处理是:多条数据是生成一个对象数组array来保存结果集合,而单条数据是直接用一个对象变量来保存,所以在处理返回结果的时候要先判断返回结果的类型,分别对待两种情况,再进行业务数据处理。
下面是我的一个方法:
items变量是保存itemSrv这个HttpService返回的结果数据,如果返回数据是多行的就应该是一个数组,如果返回数据是单行的,items这个变量的length属性就应该是undefined,这样就把返回数据保存到temp对象中,在把temp对象push到items数组了,余下的就可以直接操作items数组了(无论返回数据是否是多个)
items = itemSrv.result.items.item;
if(items.length == undefined){
var temp = items;
items = new Array();
items.push(temp);
}
if(items.length == undefined){
var temp = items;
items = new Array();
items.push(temp);
}