2009年02月7日 | 作者:Fonny
amfphp返回数据库的数据作为List类组件的数据源显示,高亮显示不正确的问题.[已解决]
工程一直进行的很顺利,之前由于刚刚开始,各方面都很仔细,不嫌繁琐的给数据库中表的名称指定了非常唯一的字符,这次想装”老手”,来点简写的表单名称,直接用了诸如:id,uid,name之类的字符.在amfphp和数据库通信过程中发现了一个小问题,用数据绑定amfphp传回的数据可以正常显示,但是无法高亮各个数据.
我在各大论坛发帖寻求问题的原因,可能是amfphp用户并不是很多,或者可能大家也没有注意这个问题的存在,所以多方求解毫无收获.只好还是自己从头来寻找问题到底出在哪里.
由于以前同样的测试都没有发生这个问题,甚至是同一个工程中的其他数据都没有出错,比如类别数据.而且我用amfphp自带的调试工具测试php脚本的时候发现同样无法正确的高亮显示.所以我觉得问题并不是在Flex端,而是在数据库中,或者是amfphp和数据库通信的过程中.
我重新建立了一个数据库,用同样的名称测试,结果还是一样错误,但是在仔细对比了那些”正确”的数据库表单之后,我发现没有用”简写”的表单数据一切正常,而那些用了上面提到的那些简单字符的表单在Flex中显示就有了问题.改了这些表单的名称之后,久违的”正常”效果回来了…
问题解决了,我不由得回想好像在Flex中的ObjectProxy之类的类中有uid这样的属性,我估计是在传递到客户端之后Flex把Object数据的uid属性认为成了这个类的内部公开属性,而属性的数据类型并不一致,所以会不断的等待正确的数据类型,导致出错.