Так что это хак ... но оказывается, что вы не можете легко изменить поток данных искровой сетки. Из того, что я могу сказать, вам нужно переопределить практически все компоненты внутри него, и это займет много времени. 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. СВЯТОЙ ХАК Бэтмен.
вот рендерер предметов 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 градусов. Кроме того, что это на самом деле должно работать хорошо ...