Есть такое "приложение":Код | <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundGradientColors="[#FFFFFF, #00608D]" horizontalAlign="left" verticalGap="15" horizontalGap="15" backgroundGradientAlphas="[1.0, 1.0]" layout="absolute"> <mx:DataGrid width="352" height="505" x="24" y="47" editable="false" id="myGrid"> <mx:columns> <mx:DataGridColumn headerText="Дата" dataField="choiseDate" width="150"/> <mx:DataGridColumn headerText="Выбор" dataField="choiseDecision" width="50"/> </mx:columns> <mx:dataProvider/> </mx:DataGrid> <mx:Button x="384" y="48" label="Сделать выбор" width="136" click="onButtonClick()"/> <mx:Script> <![CDATA[ import mx.events.CloseEvent; import mx.controls.Alert;
private function onButtonClick():void{ Alert.show("Превед, медвед?", "Вопросик", Alert.YES | Alert.NO, this, alertClickHandler); } private function alertClickHandler(event:CloseEvent):void{ myGrid.dataProvider.addItem({choiseDate:new Date(), choiseDecision:event.detail == Alert.YES ? "YES" : "NO"}); } ]]> </mx:Script>
<mx:Label x="24" y="21" text="Choise Log:" fontWeight="bold"/> </mx:Application> |
Если нажать на кнопку, и выбрать любой вариант в появившемся Alert'e, то в DataGrid добавится строка с указанием выбора. Проблема в том, что добавится она на вторую позицию (т.е. с индексом 1). Я так понимаю, что это из-за кривого определения dataProvider выше по коду. Но как его тогда правильно объявить?
Честно говоря, впервые юзаю Flex - и эта прога - мой хелло ворлд. Сделать такое же во Flash - без проблем, а тут не получается. И вообще странная фигня, я использую Flex Builder 3 и когда пишу "myGrid.dataProvider.", подсказки по методам не появляется. И в хелпе ничего нет. Приходится лазать в хелп Flash IDE за справками. |