FLEX - Как я могу щелкнуть строку в сетке данных и выделить все связанные строки - PullRequest
1 голос
/ 02 июля 2010

Может кто-нибудь показать мне базовый пример того, как я могу выбрать строку в сетке данных в flex и сделать так, чтобы она выделяла эту строку плюс любые связанные строки.Позвольте мне привести пример:

Допустим, у меня есть сетка данных.В сетке у меня есть два столбца для каждой строки.В одной колонке указан тип автомобиля, а в другой - имя владельца.Допустим, у владельца есть две машины.Итак, у вас есть сетка данных, которая выглядит следующим образом (4 строки, 2 столбца):

Камери Джон

Тундра Билли

Ягуар Джон

Range Rover Mike

Что я ищу ... если вы щелкнете по строке Камери, строка Ягуара и строка Камери будут выделены.

У меня есть сетка данных, которая имеет элементы и связана с ними.предметы его родителю.

Спасибо

Ответы [ 2 ]

0 голосов
/ 02 июля 2010

Вот быстрая и грязная реализация, использующая обработчик для события изменения:

private function onChange(e:ListEvent):void {
    var dp:ArrayCollection = e.currentTarget.dataProvider as ArrayCollection;
    var matches:ArrayCollection = new ArrayCollection();
    for (var i:int = 0; i < dp.length; i++) {
        if (dp[i].person == e.itemRenderer.data.person) {
            matches.addItem(dp[i]);
        }
    }
    (e.currentTarget as DataGrid).selectedItems = matches.source;
}

А вот MXML для сетки данных:

<mx:DataGrid change="onChange(event)">
    <mx:dataProvider>
        <s:ArrayCollection>
            <fx:Object person="Jon" car="Camry"/>
            <fx:Object person="Billy" car="Tundra"/>
            <fx:Object person="Jon" car="Jaguar"/>
            <fx:Object person="Mike" car="Range Rover"/>
        </s:ArrayCollection>
    </mx:dataProvider>
    <mx:columns>
        <mx:DataGridColumn dataField="person"/>
        <mx:DataGridColumn dataField="car"/>
    </mx:columns>
</mx:DataGrid>

Надеюсь, что поможет.

0 голосов
/ 02 июля 2010
  1. Использование события ItemClick в сетке данных
  2. Получить selectedItem (имеется в виду данные выбранной строки)
  3. Включить множественный выбор в сетке данных
  4. Цикл по провайдеру данных и поиск индексов элементов, которые вы хотите выделить (для всех индексов, где появляется Джон).
  5. Установить selectedIndexed для провайдера данных с информацией, собранной на шаге 4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...