flex datagrid - средства визуализации и пропуска строк - PullRequest
0 голосов
/ 29 июня 2009

HI

У меня есть сетка данных с 6 столбцами, каждый со своим средством визуализации элементов. В первом столбце я хочу иметь возможность сделать проверку и посмотреть, если столбец содержит некоторые действительные данные, если нет, то я хочу пропустить эту строку и перейти к следующему. Другими словами, я хочу, чтобы мой массив данных мог прекратить обработку остальных средств визуализации элементов для текущего объекта данных и перейти к следующему. Есть идеи?

Ответы [ 2 ]

1 голос
/ 29 июня 2009

Я бы сказал, что лучше всего использовать свойство filterFunction для объектов ListCollectionView (например, ArrayCollection). Это позволяет вам отфильтровывать объекты, которые вы не хотите показывать в вашей DataGrid, до того, как они будут отображаться в сетке, и следует избегать какой-либо обработки itemRenderers.

0 голосов
/ 29 июня 2009

Если вы все еще хотите, чтобы «пропущенный» объект отображался в сетке данных, и просто измените, как средства визуализации элементов отвечают на него, то вам нужно написать код для этого в средствах визуализации.

Внутри средства визуализации элементов вы можете получить доступ к значениям данных предыдущих столбцов. Вам следует проверить свойство listData, доступное в средстве визуализации элементов, и использовать полученные данные для настройки способа отображения средства визуализации элементов.

Вы можете найти информацию о списке данных здесь: http://livedocs.adobe.com/flex/3/langref/mx/controls/dataGridClasses/DataGridListData.html

Чтобы проверить предыдущие значения, вы можете написать что-то вроде этого:

var dgListData:DataGridListData = DataGridListData( listData );

// Process all columns before the current one.
for ( var i:int = 0; i < dgListData.columnIndex; i++)
{
    // Do something here to examine previous data

    // If we should stop processing based on previous values
    // then hide everything inside of this renderer (perhaps
    // move to a state name 'empty' that has no children), else
    // move to the state that renders something.
    currentState = shouldSkipObject ? 'empty' : 'normal';
}

Если вам нужна более конкретная помощь в написании кода внутри средства визуализации элементов, пожалуйста, включите образец того, как данные выглядят внутри сетки данных, а также описание того, что фактически должен делать средство визуализации элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...