Je suis novice en Flex et je n'arrive pas à comprendre les événements. Je pense que les événements sont ce que je veux utiliser pour ma situation. J'ai 2 composants, addUser.mxml
et listUsers.mxml
. J'accède à ceux-ci à partir d'un ViewStack dans mon application principale. Lorsque je charge listUsers.mxml
, il affiche une liste des utilisateurs actuels dans un DataGrid via un appel HTTPService. Lorsque j'ajoute un utilisateur en utilisant le formulaire sur addUser.mxml
, je voudrais que la grille de données dans listUsers.mxml
s'actualise lorsque je reviens à cette vue pour montrer le nouvel utilisateur. J'ai essayé plusieurs choses différentes avec addEventListener
et dispatchEvent
mais n'arrive pas à le faire fonctionner. Quelqu'un peut-il m'aider avec cette logique?Mise à jour de composants Flex externes à partir d'une action
-
Exemple de code pour commentaire, je l'ai analysé la substance non relative.
regard adduser comme ceci:
<mx:HTTPService id="httpService"
url="{'http://someurl.com'}"
useProxy="false"
method="POST"
fault="faultHandler()"
result="resultHandler(event)"
/>
public function addUser():void{
if(validateForm()){
params = {};
params['action'] = 'adduser';
params['firstName'] = firstName.text;
params['lastName'] = lastName.text;
params['email'] = email.text;
params['isActive'] = isActive.selected;
httpService.cancel();
httpService.addEventListener("result", addUserResult);
httpService.send(params);
}
}
public function addUserResult(event:ResultEvent):void{
var result:Object = event.result;
//reset fields if add user was successful
if(result.returnXML.action=='adduser'){
var m:String = result.returnXML.message.toString();
if(result.returnXML.status=='fail'){
Alert.show(m, null, Alert.OK, null, null, Application.application.IconError);
}
if(result.returnXML.status=='success'){
firstName.text = "";
lastName.text = "";
email.text = "";
isActive.selected = true;
Alert.show(m, null, Alert.OK, null, null, Application.application.IconSuccess);
}
}
}
<mx:Button id="addButton" label="Add" click="addUser();" />
listUsers ressemble à ceci:
<mx:HTTPService id="httpListService"
url="{'http://someurl.com'}"
useProxy="false"
method="POST"
fault="faultHandler()"
result="resultHandler(event)"
/>
<mx:DataGrid id="dgUsers"
itemClick="dgClickEvent(event);"
width="85%"
maxHeight="500"
>
<mx:columns>
<mx:DataGridColumn headerText="First Name" dataField="fn" />
<mx:DataGridColumn headerText="Last Name" dataField="ln" />
<mx:DataGridColumn headerText="Email" dataField="email" />
<mx:DataGridColumn headerText="Active" dataField="active" />
</mx:columns>
</mx:DataGrid>
Pouvez-vous un peu de code? Il est difficile de savoir comment aider avec quelque chose de concret à travailler. – bedwyr
J'ai ajouté du code ci-dessus, merci! – Scott