Flex Vertical Datagrid

我可以有一个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度.其他那么它应该实际工作好吗?

相关文章

一:display:flex布局display:flex是一种布局方式。它即可以...
1. flex设置元素垂直居中对齐在之前的一篇文章中记载过如何...
移动端开发知识点pc端软件和移动端apppc端软件是什么,有哪些...
最近挺忙的,准备考试,还有其他的事,没时间研究东西,快周...
display:flex;把容器设置为弹性盒模型(设置为弹性盒模型之后...
我在网页上运行了一个Flex应用程序,我想使用Command←组合键...