Flex DataGrid зависает при получении данных - PullRequest
0 голосов
/ 27 мая 2009

У меня есть сетка данных, размер которой увеличивается в зависимости от результата вызова моей базы данных. Вызов базы данных возвращает объект с 30+ значениями для каждой строки. Когда количество возвращаемых строк превышает 80-90, сетка данных становится нечетной. Первые 50-60 строк отображаются нормально, но затем отображаются пустые строки, и они даже продолжают отображаться за границей сетки данных.

Кто-нибудь есть идеи, что происходит? Я использую mxml webservice для извлечения данных.

<mx:DataGrid dataProvider="{resultsData}" rowCount="{resultsData.length}" allowDragSelection="false" 
    id = "confRoomLookupResults" width="948" 
    variableRowHeight="true" draggableColumns="false" wordWrap="true" resizableColumns="false"  
    borderColor="#E0E3E5" borderStyle="inset" x="10" top="35"

Ответы [ 3 ]

2 голосов
/ 27 мая 2009

Есть ли конкретная причина, по которой вы хотите, чтобы число строк было установлено как длина возвращаемых данных?

Что если вы просто попытаетесь установить высоту сетки данных на 100%, это заполнит видимую область сеткой данных, и любое переполнение строк приведет к появлению вертикальной полосы прокрутки.

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

1 голос
/ 27 мая 2009

Существует ограничение в 2880 пикселей для измерения флэш-фильма (http://kb2.adobe.com/cps/144/tn_14437.html). Возможно, ваша сетка данных превышает эти пределы и вызывает ошибку рендеринга. Есть ли исключения?

В любом случае, я бы согласился с предложением JustFoo и просто использовал полосу прокрутки. Это имеет смысл, так как Flash будет отображать только то, что видно, что значительно увеличит производительность клиента.

0 голосов
/ 27 мая 2009

Похоже, есть две проблемы:

1) rowCount находится за пределами отображения области просмотра сетки данных.

2) Кажется, вы используете массив, а не пользовательский объект, поэтому изменения в массиве, такие как длина, не будут очевидны ...

С сайта Adobe: http://livedocs.adobe.com/flex/3/html/help.html?content=about_dataproviders_2.html

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

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