flex数据处理之不足----datagrid的一个小问题及其解决

flex,作为学习者来说,它提供了一个全新的开发天地,里面的数据绑定已经漂亮的界面开发,都可以让人耳目一新,但由于RIA的新,flex的新,使得flex的bug有时显得很明显,功能也明显的不完善,尤其datagrid,听说2.0已经对datagrid重新写了一遍了,但起码,现在,我们开发用的还是1.5,也应该有蛮多人使用2.0的,现下我就将最近碰到的flex的一个小问题及其解决简单的说下,希望对需要的人有帮助,时间比较紧,只能简单的说下,呵呵。

datagrid本身来说,绑定数据什么都没问题,但当我想写数据进中间层、读数据、编辑数据、更新数据到中间层这样一个过程的时候,发现datagrid绑定出了一个问题,在读出来的数据为XML格式数据:

1、将各字段作为属性绑定,datagrid可以显示,可是却出现一个很奇怪的问题,datagrid就算editable为true,也无法修改,而且修改后的数据可以在编辑状态看到,就是无法更新到datagrid上,将这行打印出来,发现是一个object,而其他打印的却是可以把没一列的数据打印出来,用model绑定数据进去,打印的,也是object,但却可以编辑,这是个奇怪的问题,为什么我绑定的数据可以显示却不可以修改?

2、针对1的问题,我做了很多尝试,其中还一个让我奇怪的,我访问datagrid各字段入库的方法是用object操作,datagrid.dataprovider[i].aaaaaa,而不是datagrid.dataprovider[i].attributes.aaaaaa,说明显示的数据可能不是作为属性显示的,于是将各字段换XML的elment绑定,发现连显示都不显示了。矛盾!

最后,无奈之下的解决方法是,将XML的node遍历一遍之后,一个一个object绑定到一个array上面,这样终于解决了,但始终没有搞明白datagrid到底在搞什么。

具体方案很简单:

function onGetLabTemperatureResult(event) : Void {
var tempNode : XMLNode = mx.utils.XMLUtil.createXML(event.result).firstChild;
var tempArray = new Array();
if(tempNode.hasChildNodes()) {
for (var aNode : XMLNode = tempNode.firstChild; aNode != null; aNode=aNode.nextSibling) {
var tempTemperature : Object = new Object();
tempTemperature.temperature1 = aNode.attributes.temperature1;
tempTemperature.temperature1 = aNode.attributes.temperature1;
tempTemperature.temperature2 = aNode.attributes.temperature2;
tempTemperature.temperature3 = aNode.attributes.temperature3;
tempTemperature.temperature4 = aNode.attributes.temperature4;
tempTemperature.temperature5 = aNode.attributes.temperature5;
tempTemperature.temperature6 = aNode.attributes.temperature6;
tempTemperature.temperature7 = aNode.attributes.temperature7;
tempTemperature.temperature8 = aNode.attributes.temperature8;
tempArray.push(tempTemperature);
}
}
dgTemperature.dataProvider = tempArray;
}

这是一个调用远程对象的返回事件处理过程,大家可以参考下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值