Flex Vertical Datagrid - PullRequest
       1

Flex Vertical Datagrid

12 голосов
/ 02 июня 2011

Могу ли я иметь сетку данных, которая отображает данные по вертикали, а не по горизонтали?

например, если это мой поставщик данных:

array('firstname':'John','lastname':'Doe'),
array('firstname':'Jack','lastname':'Jill')

Я хочу, чтобы данные отображались следующим образом:

Fields        Value1    Value2
Firstname     John      Jack
Lastname      Doe       Jill

и так далее ... Каков наилучший способ добиться этого .. Если мне нужно расширить компонент datagrid, объясните, пожалуйста, как ..

1 Ответ

4 голосов
/ 07 июня 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...