我可以有一个datagrid垂直显示数据而不是水平?
例如,如果这是我的dataprovider:
array('firstname':'John','lastname':'Doe'),array('firstname':'Jack','lastname':'Jill')
我想要这样显示数据:
Fields Value1 Value2 Firstname John Jack Lastname Doe Jill
等等….什么是最好的方式来实现这一点..如果我必须扩展datagrid组件,请说明如何..
解决方法
所以这是一个黑客…但事实证明,你不能轻易地改变火花datagrid的流.从我可以看出,你需要覆盖它内部的每个组件,这将需要很长时间. DataGrid使用自己的布局,它看起来非常适合1 row = 1的数据.
所以…开始黑客:
<s:DataGrid rotation="270"> <s:columns> <s:ArrayList> <s:GridColumn itemRenderer="unrotate" headerRenderer="headerUnrotate"/> <s:GridColumn itemRenderer="unrotate" headerRenderer="headerUnrotate"/> </s:ArrayList> </s:columns> </s:DataGrid>
好的,我做了什么?我只是旋转整个datagrid.我如何解决它,所以我们不必倾斜你的头?我拆开了itemrenderer中的每一列. HOLY HACK蝙蝠侠
这里是项目渲染器unrotate:
<?xml version="1.0" encoding="utf-8"?> <s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" clipAndEnableScrolling="true"> <fx:Script> <![CDATA[ override public function prepare(hasBeenRecycled:Boolean):void { lblData.text = data[column.datafield] } ]]> </fx:Script> <s:Label id="lblData" top="9" left="7" rotation="90"/> </s:GridItemRenderer>
标题代码类似,只需旋转90即可返回到我们开始的位置.我知道这个解决方案远非完美,但是我可以想到的最好不要完全弄乱DataGrid类
您可能还需要覆盖皮肤以提供WIDER标题…这实际上是一个TALLER标题,因为我们旋转了270度.其他那么它应该实际工作好吗?
原文地址:https://www.jb51.cc/flex/174294.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。