У меня есть веб-приложение flex3, которое отображает некоторые данные с сервера на той же странице, используя класс states .
Часть кода MXML выглядит так:
<mx:states>
<mx:State name="Chart">
<mx:AddChild position="lastChild">
<ns2:ChartPanel right="10" top="182" left="10" bottom="10"></ns2:ChartPanel>
</mx:AddChild>
</mx:State>
<mx:State name="List">
<mx:AddChild position="lastChild">
<ns2:TabularPanel right="10" top="182" left="10" bottom="10"></ns2:TabularPanel>
</mx:AddChild>
</mx:State>
<mx:State name="ChatHistory">
<mx:AddChild position="lastChild">
<ns2:ChatHistoryPanel right="10" top="182" left="10" bottom="10"></ns2:ChatHistoryPanel>
</mx:AddChild>
</mx:State>
</mx:states>
ChartPanel использует AreaChart для отображения данных, в то время как TabularPanel и ChatHistoryPanel используют DataGrid.
Я переключаюсь между состояниями, устанавливая currentState:
protected function onCriteriaChange(event:Event):void
{
if (criteria.selectedLabel == "Chat History")
{
refreshChatHistory();
currentState = "ChatHistory";
}
else
{
UsersModel.unique = criteria.selectedIndex;
if (btnChart.selected)
{
UsersDataController.getNumParticipants();
currentState = "Chart";
}
if (btnList.selected)
{
UsersDataController.getListOfParticipants();
currentState == "List";
}
}
}
Исходное состояние - «График».
Вот проблема:
Переключение между состояниями работает нормально, за исключением случаев, когда я переключаюсь с 'ChatHistory' на 'List' Отображение не изменяется, но остается в содержимом ChatHistoryPanel.
Я совершенно не понимаю, в чем проблема. Я не смог найти никакого решения.
Будем очень благодарны за любые предложения или даже за обходной путь к тому, что я пытаюсь сделать.
Я использую: Flash Builder 4.5, Flex3, Windows 7, Chrome
Большое спасибо!
Офер