PDA

Просмотр полной версии : Обратная сортировка и visible для DataGridColumn в DataGrid


GrMerlin
26.04.2010, 23:20
1) Создал датагрид, задал для DataGridColumn id чтоб можно было программно играться с visible свойствами колонок. id колонок примерно такие: val1, val2, val3..., val12. Необходимо в зависимости от числа(число "вводится пользователем") сделать невидимым определенное количество колонок. Например если число 5, то нужно оставить видимыми val1, val2..., val5 а остальные сделать невидимыми... (val1.visible = false - это я знаю) Интересно услышать умные мысли по этому поводу.

2) Динамически создается ArrayCollection который передается в качестве dataProvider в DataGrid. Только вот передается он после сортировки задом на перед! Как сделать, чтоб была обратная сортировка?
код сортировки:

var dataSortField:SortField = new SortField();
dataSortField.name = "lastName";
dataSortField.numeric = true;
var stringDataSort:Sort = new Sort();
stringDataSort.fields = [dataSortField];

currentControlLab.sort = stringDataSort;
currentControlLab.refresh();

Точнее перед сортировкой он передается задом на перед(немного перемешанный), а после - еще больше перемешивается...

3) В TabNavigator у меня есть несколько VBox... Как программно убрать некоторые (Чтоб пользователь даже не подозревал что они там были)?

wvxvw
27.04.2010, 00:02
Чесно - я бы не мучался, и отсортировал бы массив, или что там под ArrayCollection лежит и присвоил по-новой, по накладным расходам так на так получится, а по уровню заморочености - гораздо проще.

GrMerlin
27.04.2010, 00:49
Т.е. предлагаете самому написать сортировку поэлементно?

wvxvw
27.04.2010, 01:50
Так она пишется...
private function sortHelper(a:Element, b:Element):int
{
if (a.foo < b.foo) return -1;
else return int(a.foo != b.foo);
}
Если в K&R стиле, то вообще 4 строчки...

GrMerlin
28.04.2010, 01:21
Ну, в общем я с сортировками сталкивался... только вот что в вашем примере означает a.foo? Не первый раз подобное вижу, но не могу понять что это. И что вы думаете по поводу пункта 1 и 3 моего изначального вопроса?

Добавлено через 25 часов 4 минуты
По поводу пункта 1: Просто в цикле обращаться к колонкам датагрида как к массиву DbGrid.columns[i]... Остался пункт 3.

wvxvw
29.04.2010, 17:10
foo / bar это два имени которые часто используют для названия каких либо элементов в коде, название которых не извесно, или может быть любым.
Точно так же как принято в качестве примера, если нужно вписать какой-нибудь URL давать ссылку на www.example.com или в качестве примера локального сайта - example.tld. Или для примера имени и фамилии человека John Doe / Василий Пупкин.