Apache flex Flex-脚本块中的绑定问题

Apache flex Flex-脚本块中的绑定问题,apache-flex,data-binding,binding,Apache Flex,Data Binding,Binding,我正在使用多文件上传程序,希望根据我的datagrid中选择的questionID(即目录名)设置上传目录 代码可以在这里找到 大概是这样的: 我已设置myQuestionID(要上载到的目录),因此它是可绑定的(第136-137行): 在我的datagrid中,我使用变更处理程序(第539行): 我们在setQuestionID函数中设置变量(第400-407行): 然后尝试在我的上传脚本中使用它(第448-475行): 我可以在MXML中看到绑定的值(第639行): 当我在datagri

我正在使用多文件上传程序,希望根据我的datagrid中选择的questionID(即目录名)设置上传目录

代码可以在这里找到

大概是这样的:

我已设置myQuestionID(要上载到的目录),因此它是可绑定的(第136-137行):

在我的datagrid中,我使用变更处理程序(第539行):

我们在setQuestionID函数中设置变量(第400-407行):

然后尝试在我的上传脚本中使用它(第448-475行):

我可以在MXML中看到绑定的值(第639行):


当我在datagrid中单击一行时,它会更新。但是,如果我尝试在任何操作脚本中访问此myQuestionID值,它将显示为null(0)。我知道我的上传程序正在工作,因为我可以硬编码我的目录到一个已知的目录,它将上传好


我真的被难住了。

每次用户更改选择时,使用dataGrid更改事件设置myDirectory。这将正确更新myDirectory的值


如果您不想在DG上使用change event,那么将someID设置为可绑定将主要解决您的问题。questionid=null的原因是,在设置myQuestionID的绑定值之前,初始化代码会调用GetSessionInfo Result()

因此,您的文件上传程序(multiFileUpload)已经用myQuestionID=null实例化


设置后,您需要将该值实例化/传递到multiFileUpload组件。

请提供更多代码这一行出现在哪个函数中
myDirectory=myDataGrid.selectedItem.someID?如何/何时调用该函数?能否将文件发布到Paste或gist或其他内容上?它看起来应该是可行的,但它可能是一个范围问题,或者是一些你认为不会影响它的事情。是的,就是这样-谢谢你,约翰。我忘记了,在应用程序的init()中,如果在函数中,所有值都是固定的,如果希望变量是动态的,就必须打破这种状态。
[Bindable] public var myQuestionID:int;
change="setQuestionID();"
[Bindable (event="questionChange")]          
private function setQuestionID():void
{
     myQuestionID = questionsDG.selectedItem.QuestionID;
     dispatchEvent(new Event("questionChange"));
}
// initUploader is called when account info loads
public function getSessionInfoResult(event:ResultEvent):void{           

        // Get jsessionid & questionid (final directory) for CF uploader
        myToken = roAccount.getSessionToken.lastResult;             
        // BUG: myQuestion is null in actionscript, but okay in form.

        var postVariables:URLVariables = new URLVariables();
        postVariables.jsessionid = myToken;
        postVariables.questionid = myQuestionID;            

        multiFileUpload = new MultiFileUpload(
                    filesDG,
                    browseBTN,
                    clearButton,
                    delButton,
                    upload_btn,
                    progressbar,
                    uploadDestination,
                    postVariables,
                    350000,
                    filesToFilter
                    );

         multiFileUpload.addEventListener(Event.COMPLETE,uploadsfinished);         
}
<mx:Label text="{myDirectory}"/>