Flex Combobox странная проблема - PullRequest
1 голос
/ 23 июня 2009

У меня странная проблема с выпадающим списком в Flex. В следующем коде:

    public function rollCombo(cmb:ComboBox,value:String):void
    {
            if(value=='') return;
            var i:int=0;
            cmb.selectedIndex = 0;
            var dp1:XMLListCollection =   (XMLListCollection(cmb.dataProvider);
            trace(value);
            while(dp1[i]!=value && i<dp1.length)
              cmb.selectedIndex = ++i;
              cmb.validateNow();
              cmb.validateDisplayList();

            trace(cmb.selectedLabel);
    }

в примере, в конце выполнения функции i равен 7, и cmb.selectedLabel имеет значение "xyz" (в соответствии с выводом трассировки), но отображается метка в выпадающем списке другой.

Кроме того, это довольно непредсказуемо. Такое бывает иногда и не всегда.

1 Ответ

2 голосов
/ 23 июня 2009

Последний выбранный индекс находится вне диапазона, потому что вы используете предварительное увеличение. Это означает, что перед тестом я становлюсь dp1.length, и он также назначается для selectedIndex. Это может объяснить странное поведение. Возможно, вы захотите использовать постинкремент.

Также. Единственное, что исполняется в это время, выглядит как

cmb.selectedIndex = ++i;

Я не знаю, если это то, что вы хотели, но вам может понадобиться "{}" там.

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