во Flex У меня есть что-то вроде этого:
var dg:DataGrid = new DataGrid();
if (something) dg = dg1 else if (something_2) dg = dg2;
dg.dataProvider.getItemAt(3).id;
и dg
ВСЕГДА указывает на DataGrid
(даже если dg1
имеет имя DataGrid_test
и dg2 = DataGrid_test2
) и, наконец, действиесделано на моем первом DataGrid
(DataGrid_test
).Зачем?Как я могу передать dg1
или dg2
на dg
?
Здесь вставлен практически полный код этой части приложения.Я отредактировал это, чтобы сделать это более ясным.
var dg:DataGrid = null;
if ( currentState == "state1" ) { //if this condition is true then app. go into if and
dg = dataGrid_first; // make dg = DataGrid (1)
test.text = "inco"; // shows "inco" in "test" label
} else if ( currentState == "state2" ) { // if this is true then app. go..
dg = dataGrid_second; //here and set dg as DataGrid (exactly!) (2)
test.text = "outgo"; // and change test label into blank text (earlier text disapears)
}
search(dg);
Это изменено с советом '@splash', все еще не работающим.
РЕДАКТИРОВАТЬ: я сделал это изменение для того, чтобы отвечать за все Выкто мне в этом помогает :) Я думаю, что это будет лучшим способом.В кодоблоке выше я добавил комментарии.(пожалуйста, прочитайте сейчас комментарии и после этого возвращайтесь сюда :)) Теперь я объясню, что именно происходит.Я отлаживал его много раз, и вот результаты: dg указывает на DataGrid (как компонент в flex, а не на dataGrid_first), мне нужно было расширить DataGrid, так что теперь это компонент ColorColumn (я не знаю, правильно ли я его вызвал), а не DataGrid.И dg указывает на ColorColumn, а не на dataGrid_first или dataGrid_second.Я даже сегодня попробовал то же самое, что предлагает @splash:
if ( currentState == "state1" ) {
test.text = "inco";
search(dataGrid_first);
} else if ( currentState == "state2" ) {
test.text = "outgo";
search(dataGrid_second);
}
и поиск по-прежнему указывает на ColorColumn: / Моя проблема действительно проста - я просто хочу перейти к поиску различных dataGrid для каждого состояния.Если у Вас есть другие идеи, как я могу сделать это правильно, я буду рад услышать об этом.:) Но все же я не понимаю, почему это не работает.Моя поисковая функция использует алгоритм Бойера-Моора для поиска текста в dataGrid.dataProvider.Если он что-то находит, он помещается в новый массив, и после передачи всего dataProvider я раскрашиваю строки с помощью искомого слова.