Сетка данных Flex: проверьте, отображает ли средство визуализации элементов последнюю строку в сетке. - PullRequest
0 голосов
/ 03 февраля 2012

В настоящее время я работаю с компонентом OLAPDataGrid и застрял в относительно простой задаче: я хочу, чтобы стиль последней строки сетки отличался от остальных, поэтому моему средству визуализации элемента ячейки необходимо знать, отображает ли он последнюю строку с содержимым в общей сетке, включая те строки, которые в данный момент не отображаются, поскольку они находятся за пределами видимого пространства сетки. Свойство rowIndex в AdvancedGridListData возвращает мне только индекс строки средства визуализации относительно диапазона видимых строк сетки, т.е. когда я прокручиваю сетку вниз, элемент данных с индексом больше 0 получает индекс rpw = 0.

Я что-то здесь упускаю?

Ответы [ 2 ]

0 голосов
/ 03 февраля 2012

Насколько я понимаю, это часть оригинальных компонентов DataVisualization, что означает, что он должен предоставлять функцию styleFunction. В документации AdvanceDataGrid имеется обширная документация по созданию и использованию styleFunction.

0 голосов
/ 03 февраля 2012

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

Скажи, что твой дп является коллекцией массивов ...

dp.getItemAt(dp.length-1).isLastRow = true;

Или XMLListCollection

dp.getItemAt(dp.length - 1).@isLastRow = true;

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

Тогда в вашем средстве визуализации предметов вы увидите что-то вроде этого:

override public function set data(value:Object):void
{
    super.data = value;
    if(data.isLastRow)
    {
        //Style the item renderer here
    }
    else if(data.@isLastRow.toString() == "true")
    {
        //XMLListCollection... Style the item renderer here
    }
}

Как я уже сказал, может быть более простой способ, и это может быть взлом. Пожалуйста, опубликуйте лучшее решение здесь (если вы его найдете) для дальнейшего использования.

Спасибо

-Vic

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