Flex中DataGrid通过存储在List中的JAVABEAN提供数据时候,数据不能正常显示的问题

先说一下具体实验背景:

      现在要开发一个用户数据查询,并在DataGrid中显示查询结果的功能。

     有一个特殊的需求,用户有一个状态属性(分别是“锁定”、“未锁定”),在数据库中存储的格式0或1。通过ibatis读取数据库的返回类型设置的是:resultClass="com.xdja.pms.beans.User",因此每行查询结果会由ibatis封装为User对象,返回包含对象的list。也就是说ibatis返回的是01,但是我要实现在DataGrid中显示的数据是“锁定、未锁定”。因此我在User中加入了一个stateName成员,并为它加了getStateName方法。stateName的值在setState方法被调用的时候进行赋值。

 

数据来源 :提供给dataprovider的数据是一个List list对象;数据从Mysql数据库中取得。

 

MXML文件中代码片段

(1)远程调用定义

 

(2)绑定数据定义

 

 

(3)DataGrid设置

 

 

 

远程对象的配置:remoting-config.xml中加入配置信息:

 

com.xxx.pms.web.xtpz.UserRemoteInvoke

万事具备,开始运行!

 

结果错误出来了:用户状态那一列没有出现预期的值!肯定有地方出错,立即查找原因……

 

stateName的get方法也有啊,为什么还有错误?

唯一没有的是stateName缺少Set方法,但是它在SetState的时候已经赋值了啊,为什么?

 

抱着侥幸的信息,加入一个SetStateName方法,设置为public。重启项目……

访问,问题解决。

 

 

经过分析,问题最可能出现的原因是在MXML中绑定数据的时候:

private function getUsers_ResultHandler(event:ResultEvent):void{
   userinfoDP = event.result as ArrayCollection;
  }

这个转换。

但是如果这个转换需要调用各个对象的get、set方法的话,调用getState方法同样会给stateName赋值啊,那么为什么会不能显示?

 

问题虽然解决了,但是这个疑问依然纠结着。希望大家知道的留言,给出一些指导……

 

你可能感兴趣的:(datagrid,list,存储,flex,ibatis,function)