Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> VerticalGrid 
:(
    Опции темы
anton20vlad
Дата 12.6.2009, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 12.6.2009

Репутация: нет
Всего: нет



Пытаюсь сделать грид в котором itemeditor меняется построчно. На первой строке скажем DateChosser, а на второй textEdit. Вот проблема в том, что оно так и происходит, но DateChooser не поверх грида рендерится, а внутри строки. Увидеть его полностью можно только если включть вертикальную прокрутку.


Код

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"
    implements="mx.core.IDataRenderer, mx.controls.listClasses.IListItemRenderer"
    verticalScrollPolicy="off" horizontalScrollPolicy="off" focusIn="onFocusIn(event)">
    
    <mx:Script>
        <![CDATA[
            import mx.controls.DateChooser;
        import mx.controls.NumericStepper;
        import mx.controls.TextInput;
        import mx.core.UIComponent;
import mx.controls.Alert;

        import mx.controls.dataGridClasses.DataGridListData;
        import mx.controls.listClasses.BaseListData;

        
        private var stepper:NumericStepper;
        private var textField:TextInput;
        private var dateField:DateChooser;
        
        private var dataChanged:Boolean = false;
        
        
        public static const TYPE_STRING:String = "[class TextInput]";
        public static const TYPE_DATECHOOSER:String = "[class DateChooser]";
        public static const TYPE_NUMBER:String = "number";
        
        override public function set data(value:Object):void
        {
            super.data = value;
            
            dataChanged = true;
            invalidateProperties();
        }
        
        override protected function commitProperties():void
        {
            super.commitProperties();
            
            if (dataChanged)
            {
                createEditor();
                dataChanged = false;
            }
        }
        
        private function createEditor():void
        {
        
            removeEditor();
            //super.DataGridSource.columns[super.selectedIndex].itemEditor
            //DataGridSource.columns[i].itemEditor.generator
            var vg:DBVerticalGrid = DBVerticalGrid(UIComponent(parent).parent.parent); 
            //Alert.show(vg.toString());
            if (data != null)
            {
                if (vg.DataGridSource.columns[vg.grid.selectedIndex].itemEditor.generator == TYPE_NUMBER)
                {
                    stepper = new NumericStepper();
                    addChild(stepper);
                    
                    stepper.value = Number(data.Value);
                }
                else if (vg.DataGridSource.columns[vg.grid.selectedIndex].itemEditor.generator == TYPE_STRING)
                {
                    textField = new TextInput();
                    addChild(textField);
                    
                    textField.text = String(data.Value);
                    
                }
                else if (vg.DataGridSource.columns[vg.grid.selectedIndex].itemEditor.generator == TYPE_DATECHOOSER)
                {
                    dateField = new DateChooser();
                    addChild(dateField);
                    dateField.isPopUp = true;
                    dateField.selectedDate = new Date('2008/04/19');
                    
                }
            }

        }
        
        private function removeEditor():void
        {
            if (stepper != null)
            {
                removeChild(stepper);
                stepper = null;
            }
            
            if (textField != null)
            {
                removeChild(textField);
                textField = null;
            }
            if (dateField != null)
            {
                removeChild(dateField);
                dateField = null;
            }

        }
        
        public function get newData():Object
        {
            var newValue:Object = null;
            //var dataVO:DataVO = DataVO(data);
            var vg:DBVerticalGrid = DBVerticalGrid(UIComponent(parent).parent.parent); 
            if (vg.DataGridSource.columns[vg.grid.selectedIndex].itemEditor.generator == TYPE_NUMBER)
            {
                var stepper:NumericStepper = stepper;
                newValue = stepper.value;
            }
            else if (vg.DataGridSource.columns[vg.grid.selectedIndex].itemEditor.generator == TYPE_STRING)
            {
                newValue = textField.text;
            }
            else if (vg.DataGridSource.columns[vg.grid.selectedIndex].itemEditor.generator == TYPE_DATECHOOSER)
            {
                newValue = dateField.selectedDate.toDateString();
            }

            //return textDisplay.text;
            
            return newValue;
        }
            private function onFocusIn(e:FocusEvent):void
            {
                //dateField.open();
                
            }        
        ]]>
    </mx:Script>
    
</mx:Canvas>


Тут пока моного лишнего. 

Код

    <mx:Canvas width="100%" height="100%">
    <mx:AdvancedDataGrid id="dg" dataProvider="{srv.lastResult.contragents.contragent}" designViewDataType="flat" x="10" y="34">
        <mx:columns>
        
            <mx:AdvancedDataGridColumn headerText="Дата рождения" dataField="contragent_birth" itemEditor="mx.controls.DateChooser"/>
            <mx:AdvancedDataGridColumn headerText="Имя" dataField="contragent_name"/>
            <mx:AdvancedDataGridColumn headerText="Фамилия" dataField="contragent_surname"/>
        </mx:columns>        
    </mx:AdvancedDataGrid>
<ns1:DBVerticalGrid id="vdg" DataGridSource="{dg}" verticalGap="6" verticalAlign="middle" horizontalAlign="center" x="358" y="34"/>    
    </mx:Canvas>



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Flex | Следующая тема »


 




[ Время генерации скрипта: 0.0391 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.