Je travaille sur le chargeur multiple et je souhaite définir le répertoire de téléchargement en fonction d'un identificateur de question sélectionné (qui est le nom du répertoire) dans ma grille de données.Flex - Problème avec la liaison dans les blocs de script
Le code peut être trouvé ici http://pastie.org/784185
Quelque chose comme ceci:
J'ai mis myQuestionID (le répertoire à télécharger sur) donc il est bindable (lignes 136-137):
[Bindable] public var myQuestionID:int;
Dans mon DataGrid-je utiliser un gestionnaire de changement (ligne 539):
change="setQuestionID();"
Nous fixons la variable dans la fonction setQuestionID (lignes 400-407):
[Bindable (event="questionChange")]
private function setQuestionID():void
{
myQuestionID = questionsDG.selectedItem.QuestionID;
dispatchEvent(new Event("questionChange"));
}
Et puis essayez de l'utiliser dans mon script Uploader (lignes 448-475):
// 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);
}
Je peux voir dans mon MXML que la valeur binded (ligne 639):
<mx:Label text="{myDirectory}"/>
et il met à jour lorsque je clique sur une ligne dans mon DataGrid. Cependant, si j'essaie d'accéder à cette valeur myQuestionID à l'intérieur d'un script d'action, il apparaîtra comme nul (0). Je sais que mon uploader fonctionne car je peux hardcode myDirectory à un répertoire connu et il téléchargera bien.
Je suis vraiment perplexe.
Veuillez indiquer plus de code – Patrick
Dans quelle fonction cette ligne apparaît-elle 'myDirectory = myDataGrid.selectedItem.someID;'? Comment/quand appelez-vous cette fonction? – Amarghosh
Pouvez-vous poster le fichier sur pastie ou gist ou quelque chose? On dirait que cela devrait fonctionner, mais ce pourrait être une question de portée ou quelque chose que vous ne pensiez pas l'affecter. – Sophistifunk