Обратите внимание на программу Flex ниже (я использую Flex Builder 3 w/3.5 SDK). Второе поле со списком зависит от первого. Если выбрано «первое имя», вам разрешено выбирать «фамилию». Если выбрано «none», вам не разрешено выбирать фамилию, а скорее предлагается выбрать имя.Почему этикетки таинственно исчезают из ComboBox в Flex 3?
Чтобы увидеть загадочную проблему исчезающих меток, запустите эту программу и выберите имя. Затем выберите фамилию. Все хорошо. Затем выберите «none» в первом поле со списком. Приглашение второй сводки изменится, и последние имена будут удалены. Все по-прежнему хорошо. Затем повторите попытку выбора первого и последнего имени. Вы увидите, что после выбора первого имени последние имена не отображаются, хотя пробелы для них выполняются (и если вы отлаживаете программу, в датапарадресе появляются правильные данные).
Этот «ошибка» убивает меня внутри внутри весь день. Проект, в котором я реализую это поведение, довольно немного сложнее, но этот пример в основном иллюстрирует, что происходит. Это ошибка в Flex, или я делаю что-то неправильно?
Спасибо!
<?xml version="1.0" encoding="utf-8"?>
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
public var cbCompanyDP:ArrayCollection = new ArrayCollection([ { firstName: "None", data: 0 },
{ firstName: "Bob", data: 1 },
{ firstName: "Bart", data: 2 } ]);
[Bindable]
public var cbEmployeeDP:ArrayCollection = new ArrayCollection();
public var employees:ArrayCollection = new ArrayCollection([ { lastName: "Smith" },
{ lastName: "Smyth" },
{ lastName: "Smick" },
{ lastName: "Smack" } ]);
[Bindable]
public var prompt:String = "Choose First Name first";
public function cbFirstNameChange(value:int):void
{
if (value == 0)
{
employees.removeAll();
setEmpDP(employees);
prompt = "Choose First Name first";
}
else
{
setEmployees();
setEmpDP(employees);
prompt = "Now choose Last Name";
}
}
private function setEmpDP(ac:ArrayCollection):void
{
cbEmployeeDP = ac;
}
private function setEmployees():void
{
employees = new ArrayCollection([ { lastName: "Smith" },
{ lastName: "Smyth" },
{ lastName: "Smick" },
{ lastName: "Smack" } ]);
}
]]>
</mx:Script>
<mx:HBox>
<mx:ComboBox dataProvider="{cbCompanyDP}"
id="cbFirstName"
labelField="firstName"
width="200"
change="cbFirstNameChange(cbFirstName.selectedItem.data)"
prompt="Choose a first Name" />
<mx:ComboBox dataProvider="{cbEmployeeDP}"
id="cbLastName"
labelField="lastName"
width="200"
prompt="{prompt}" />
</mx:HBox>
Чувак! Я попробовал вас pgm, и его показ не был такой проблемой в машине ma! – Anoop
Ну, это обескураживает. Какую версию Flex SDK вы используете? Какая версия Flash Player? – eterps