在flex builder 4.6中,我试图从am SQL查询绑定数据,显示在< s:List>使用项呈示器< s:Textarea>
我的守则如下:
<s:List id="listapagar" x="304" y="276" width="330" height="42" borderVisible="false" color="#FF0000" dataProvider="{dataProvider}" enabled="false" fontSize="22" fontStyle="italic" fontWeight="bold" labelField="nome" textAlign="center" textDecoration="underline"> <s:itemRenderer> <fx:Component> <s:ItemRenderer> <s:TextArea id="apagar" width="330" height="42" text="R${data.valorapagar}" /> </s:ItemRenderer> </fx:Component> </s:itemRenderer> </s:List>
protected function buttonX():void { var sqlConnection:sqlConnection = new sqlConnection(); sqlConnection.open(File.applicationDirectory.resolvePath("testeDb.sqlite")); var stmt:sqlStatement = new sqlStatement(); stmt.sqlConnection = sqlConnection; stmt.text = "SELECT * FROM comandatual order by numerodatransacao desc limit 1 "; stmt.execute(); dataProvider = new ArrayCollection(stmt.getResult().data); }
在它之后,我试图将结果显示在s:TextArea id =“apagar”并与另一个文本区域绑定,以执行简单的减去calc,如下所示:
<fx:Binding source="apagar.text" destination="restroco.text"/>
<fx:Model id="Calculos" > <Calculos> <!-- Perform a calculation. --> <a>{(Number(restroco.text)) - 3}</a> </Calculos> </fx:Model>
但此时,flex返回一个不能让我前进的错误:
1120: Access of undefined property apagar. Flex Problem
所以,我被困,如果有人想看到我的完整代码,他们在这里:
解决方法
正如@RIAStar所解释的那样,你的fx:Model无法访问apagar.除了建议的解决方案,您还可以使用IndexChangeEvent:
<fx:Script> <![CDATA[ import spark.events.IndexChangeEvent; private var apagarNum:Number = NaN; protected function selectionChangedHandler(event:IndexChangeEvent):void { apagarNum = Number(listapagar.selectedItem.valorapagar); } ]]> </fx:Script> <fx:Model id="Calculos" > <Calculos> <!-- Perform a calculation. --> <c>{(Number(restroco.text)) - 3}</c> <!-- calcular com valor a pagar --> <d>{apagarNum - 3}</d> </Calculos> </fx:Model> <s:List id="listapagar" change="selectionChangedHandler(event)" ...>