Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Добавление данных (http://www.flasher.ru/forum/showthread.php?t=103595)

Snut 08.11.2007 12:40

Добавление данных
 
имеем:
Код:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="PhoneRequest.send()">

    <mx:HTTPService id="PhoneRequest" url="http://www.snut.ru/projects/phone/phones.xml" useProxy="false" />

    <mx:Panel width="460" height="357.26086" layout="absolute" title="Phones" fontFamily="Verdana" fontSize="10" cornerRadius="10" x="10" y="10" verticalAlign="middle" horizontalAlign="center">

        <mx:DataGrid x="20" y="20" id="Phones" width="400" dataProvider="{PhoneRequest.lastResult.telephoneDirectory.phoneCount}" borderStyle="inset">
            <mx:columns>
                <mx:DataGridColumn headerText="Name" dataField="name" width="150"/>
                <mx:DataGridColumn headerText="Phone" dataField="phone" width="150"/>
                <mx:DataGridColumn headerText="Mail" dataField="mail" width="150"/>
            </mx:columns>
        </mx:DataGrid>
        <mx:Label x="93" y="182" text="Name:"/>
        <mx:TextInput x="143" y="180" id="name_inp" width="200" text="{Phones.selectedItem.name}"/>
        <mx:Label x="90" y="210" text="Phone:"/>
        <mx:TextInput x="143" y="208" width="200" id="phone_inp" text="{Phones.selectedItem.phone}"/>
        <mx:Label x="103" y="238" text="Mail:"/>
        <mx:TextInput x="143" y="236" width="200" id="mail_inp" text="{Phones.selectedItem.mail}"/>
        <mx:Button x="199" y="269" label="Add" click="// непонятно"/>
    </mx:Panel>
   
</mx:Application>

как по клику добавить текст из инпутов в датагрид? Спасибо.

librio 08.11.2007 18:10

Был уже недавно такой вопрос. Изменяй dataProvider у DataGrid

Snut 09.11.2007 03:11

сделал следущее... просьба ногами не бить
Код:

<mx:Script>
        <![CDATA[
                import mx.controls.DataGrid;
       
                public function addData():void{
                        var data:Array = [{name: name_inp.text, phone: phone_inp.text, mail: mail_inp.text}];
                        Phones.dataProvider.push = data;
                }
        ]]>
</mx:Script>

Код:

<mx:Button id="button_add" x="297" label="Добавить" click="addData()" y="193"/>

librio 09.11.2007 07:48

Чтобы тебе самому твой код стал интуитивно понятным, предлагаю сделать следующее:

1. Добавить слушатель на событие прихода данных по запросу
2. Написать функцию разбора пришедшего XML и формирование ArrayCollection на его основе
3. При добавлении новой строчки в таблицу делать следующее:
создавать объект с нужными свойствами и делать ac.addItem(obj), где ac - dataProvider для таблицы, а obj - объект данных новой строки.


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

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