Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Как объединить строку в AdvancedDataGrid (http://www.flasher.ru/forum/showthread.php?t=133329)

VovkaMorkovka1 02.12.2009 15:47

Как объединить строку в AdvancedDataGrid
 
Всем привет нужно в AdvancedDataGrid показывать строку в зависимости от содержимого датапровайдера в виде одной ячейки. Т.е. идёт несколько строк как обычно, потом одна сплошная и опять несколько строк.

Данные будут подгружаться в таблицу динамически, поэтому решение "итемрендерер - таблица" не подходит, группировка тоже.

Т.е. нужен какой - то вариант с использованием AdvancedDataGridRendererProvider

Пробовал с иерархической структурой, но начальству не нравится расхлопывающиеся итемы

Может кто - то подскажет как это провернуть?


Другими словами есть сниппет приведённый ниже, нужно менять columnSpan в зависимости от содержимого строки

Код AS3:

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script>
    <![CDATA[
        import mx.collections.ArrayCollection;
        import mx.events.FlexEvent;
 
        [Bindable]
        private var dataC:ArrayCollection = new ArrayCollection([
            {
                summary:"sum1"
            },
            {
                type:"Discovery3",
                value:11
            },
            {
                type:"Discovery2",
                value:11
 
 
            },
            {
                type:"Discovery2",
                value:11
 
 
            },
            {
                summary:"sum3"
            },
 
        ]);
 
 
                    function dataChangeEvent(event:FlexEvent):void
                    {
                        if (data.hasOwnProperty(name))
                        {
                            summaryRendererProvider.columnIndex = 2
                            summaryRendererProvider.columnSpan = 1;
 
                        }else{
                            summaryRendererProvider.columnIndex = 0
                            summaryRendererProvider.columnSpan = 0;
                        }
                    }
    ]]>
  </mx:Script>
    <mx:Panel title="Blah-Blah"
              height="75%" width="75%" layout="horizontal"
              paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10">
        <mx:AdvancedDataGrid id="myADG"
                            width="100%" height="100%"
                            variableRowHeight="true" dataProvider="{dataC}">
 
            <mx:columns>
                <mx:AdvancedDataGridColumn dataField="type" headerText="type"/>
                <mx:AdvancedDataGridColumn dataField="value" headerText="value"/>
                <mx:AdvancedDataGridColumn dataField="summary" headerText="summary"/>
            </mx:columns>
 
            <mx:rendererProviders>
 
                <mx:AdvancedDataGridRendererProvider
                        dataField="summary"
 
                      id="summaryRendererProvider" >
 
 
                    <mx:renderer >
 
                        <mx:Component>
 
                            <mx:Label height="30" text="{data.summary}" textAlign="center" />
                        </mx:Component>
                    </mx:renderer>
                </mx:AdvancedDataGridRendererProvider>
            </mx:rendererProviders>
        </mx:AdvancedDataGrid>
    </mx:Panel>
</mx:Application>



Часовой пояс GMT +4, время: 19:41.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.