Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   AdvancedDataGrid & selectedItem, как получить item (http://www.flasher.ru/forum/showthread.php?t=136377)

chaos 16.02.2010 09:22

AdvancedDataGrid & selectedItem, как получить item
 
Доброго времени суток!
Хотел спросить, может тут кто знает.
Есть сабж. selectionMode="singleCell". данные в виде дерева.
как мне по координатам выделенной ячейки(rowIndex & colIndex) определить объект? который находится в датапровайдере?

Заранее благодарен!

BeDLiNt 16.02.2010 09:56

Код AS3:

protected function dataGrid_itemClickHandler(event:ListEvent):void
{
        var data:Object = event.currentTarget.dataProvider[event.rowIndex];
        var dataField:String = event.currentTarget.columns[event.columnIndex].dataField;
        trace(data[dataField]);
}


chaos 16.02.2010 10:19

не работает :( валится на
Код AS3:

var data:Object = event.currentTarget.dataProvider[event.rowIndex];

вот такой исходный код у мну
Код AS3:

 
[Bindable]
private var d:ArrayCollection = new ArrayCollection;
 
private function onCreationComplete():void {
        var o:Object = new Object();
        o.name = "Group1";
        o.children = new ArrayCollection;
        o.children.addItem({name:"Item 1", field1:"hello", field2:"world"});
        o.children.addItem({name:"Item 2", field1:"hello", field2:"world"});
        o.children.addItem({name:"Item 3", field1:"hello", field2:"world"});
        d.addItem(o);
 
        o = new Object();
        o.name = "Group2";
        o.children = new ArrayCollection;
        o.children.addItem({name:"Item 1", field1:"hello", field2:"world"});
        o.children.addItem({name:"Item 2", field1:"hello", field2:"world"});
        o.children.addItem({name:"Item 3", field1:"hello", field2:"world"});
        d.addItem(o);                       
 
        o = new Object();
        o.name = "Group3";
        o.children = new ArrayCollection;
        o.children.addItem({name:"Item 1", field1:"hello", field2:"world"});
        o.children.addItem({name:"Item 2", field1:"hello", field2:"world"});
        o.children.addItem({name:"Item 3", field1:"hello", field2:"world"});
        d.addItem(o);
 
        o = new Object();
        o.name = "Group4";
        o.children = new ArrayCollection;
        o.children.addItem({name:"Item 1", field1:"hello", field2:"world"});
        o.children.addItem({name:"Item 2", field1:"hello", field2:"world"});
        o.children.addItem({name:"Item 3", field1:"hello", field2:"world"});
        d.addItem(o);                       
}
 
<mx:AdvancedDataGrid x="134" y="108" id="adg1" designViewDataType="tree" width="739" height="216"
                dragEnabled="true" dropEnabled="true"
                dragOver="dragStrat(event)"
                selectionMode="singleCell"
                change="change(event);">
        <mx:dataProvider>
                <mx:HierarchicalData source="{d}" childrenField="children"/>
        </mx:dataProvider>
 
        <mx:columns>
                <mx:AdvancedDataGridColumn headerText="Column 1" dataField="name"/>
                <mx:AdvancedDataGridColumn headerText="Column 1" dataField="field1"/>
                <mx:AdvancedDataGridColumn headerText="Column 1" dataField="field2"/>
        </mx:columns>
</mx:AdvancedDataGrid>


BeDLiNt 16.02.2010 10:31

event.currentTarget это adg1.

chaos 16.02.2010 10:53

Цитата:

Сообщение от BeDLiNt (Сообщение 886842)
event.currentTarget это adg1.

я в курсе. или я что-то не так понял?

BeDLiNt 16.02.2010 10:56

Цитата:

не работает валится...
Какая ошибка?

chaos 16.02.2010 11:01

Цитата:

Сообщение от BeDLiNt (Сообщение 886850)
Какая ошибка?

ну например при выборе ячейки с координатоми 2:1
Цитата:

ReferenceError: Error #1069: Property 2 not found on mx.collections.HierarchicalCollectionView and there is no default value.
Добавлено через 6 часов 31 минуту
решение

Код AS3:

private function change():void {
        trace("change " + event.rowIndex + " " + event.columnIndex);
 
        var cursor:IViewCursor = IHierarchicalCollectionView(adg1.dataProvider).createCursor();
        cursor.seek(CursorBookmark.FIRST, adg1.selectedIndex);
        var itemFromCursor:Object = cursor.current;
}



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

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