Apache flex Flex-脚本块中的绑定问题
我正在使用多文件上传程序,希望根据我的datagrid中选择的questionID(即目录名)设置上传目录 代码可以在这里找到 大概是这样的: 我已设置myQuestionID(要上载到的目录),因此它是可绑定的(第136-137行): 在我的datagrid中,我使用变更处理程序(第539行): 我们在setQuestionID函数中设置变量(第400-407行): 然后尝试在我的上传脚本中使用它(第448-475行): 我可以在MXML中看到绑定的值(第639行):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中单击一行时,它会更新。但是,如果我尝试在任何操作脚本中访问此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}"/>