Проверять ячейки DataGridColumn индивидуально - PullRequest
2 голосов
/ 18 июня 2010

Как я могу проверить ячейки в DataGridColumn индивидуально? (ActionScript 3.5) Проверка настроена для каждой ячейки на основе полей в данной строке. Например

FIELD               VALUE   TYPE
age                 13      Integer
height              13x3    Integer
registered          true    Boolean
temperature         98.G6   Float

В этом случае, конечно, 13x3 и 98.G6 будут недействительными.

Легко написать Валидатор ; и для доступа к объектам поставщика данных.

Но как мне получить индивидуальный доступ к объектам ячейки GUI, чтобы я мог установить errorString в отдельной ячейке, либо напрямую, либо через Validator ?

Элемент itemRenderer / TextInput повторно используется в ячейках по соображениям производительности, поэтому доступ к объектам уровня GUI довольно сложен.


Редактировать

Ответы:

  1. Одним из способов проверки и отображения меток аннулирования, но не для каждой ячейки, является проверка всех объектов поставщика данных, а затем установка errorString во всей сетке.

  2. Один из способов проверки на ячейку - обработчик события itemEditEnd . (См. Эти страницы A B C D ). Один недостаток заключается в том, что он разрешает доступ к ячейкам только изнутри, а не в действии, которое проверяет сетку по команде.

  3. Пользовательский itemRenderer - это еще одна возможность, как и в ответе ниже, но, как и в 3 выше, он разрешает доступ к ячейкам только изнутри, а не в действии, которое проверяет сетка по команде.

  4. См. Ответ Ричарда Хейвена ниже.

  5. А вот как получить доступ к объектам GUI : список соответствующих объектов GUI является защищенным полем; так что вы можете получить к нему доступ по подклассам, а затем перебрать GUI-компоненты, которые представляют ячейки, и установить errorString для каждой из них.

Ответы [ 3 ]

2 голосов
/ 18 июня 2010

Этот веб-сайт на BigResource спрашивает, как получить доступ к отдельной ячейке.Третий пост отвечает на вопрос и дает ссылку на лучший ресурс, чем этот.Я подумал, что вы хотели бы оба.Надеюсь, это поможет.

1 голос
/ 28 июня 2010

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

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

Ура

1 голос
/ 22 июня 2010

Вы действительно хотите получить доступ к объектам DisplayObjects отдельных ячеек?Компонент управляет экземплярами так, что он создает только столько, сколько ему необходимо для отображения (чтобы огромные наборы данных не требовали огромного количества объектов DisplayObjects на экране).DataGridColumn с пользовательским itemRenderer .Вы можете написать этот класс, чтобы он принимал валидатор и обновлял его внешний вид, и вокруг него куча отличных учебников .

...