我可以有一个垂直而不是水平显示数据的数据网格吗?
例如,如果这是我的数据提供者:
array('firstname':'John','lastname':'Doe'),
array('firstname':'Jack','lastname':'Jill')
我希望数据显示如下:
Fields Value1 Value2
Firstname John Jack
Lastname Doe Jill
等等..实现此目的的最佳方法是什么..如果我必须扩展数据网格组件,请解释如何..
所以这是一个黑客......但事实证明你不能轻易改变 Spark 数据网格的流程。据我所知,您需要覆盖其中的几乎每个组件,并且需要很长时间。 DataGrid 使用自己的布局,并且似乎非常注重 1 行 = 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>
好吧……我做了什么?我只是旋转整个数据网格。我该如何解决这个问题,这样我们就不必倾斜你的头?我取消旋转 itemrenderer 中的每一列。神圣黑客蝙蝠侠。
这是项目渲染器取消旋转:
<?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 类
您可能还需要覆盖皮肤以提供更宽的标头...这实际上是一个更高的标头,因为我们旋转了 270 度。除此之外,它实际上应该可以正常工作......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)