J'ai un httpservice qui renvoie des données XML. J'ai aussi une grille de données en utilisant les données retournées et en les transmettant aussi au moteur de rendu qui fonctionne parfaitement.Flex Configuration dataProvider pour un itemRenderer
<mx:DataGrid id="myDG"
dataProvider="{httpService.lastResult.item}"
headerHeight="0"
editable="false"
width="100%" height="100%"
rowHeight="50"
itemClick="switchView(myDG.selectedItem.name);">
<mx:columns>
<mx:DataGridColumn itemRenderer="com.xd.components.renderers.SoftwareListRenderer" />
</mx:columns>
</mx:DataGrid>
Pour chaque résultat dans les données xml J'ai un code qui crée une nouvelle panel()
et renderer.
private function viewstack_addChild(name:String):void {
var p:Panel = new Panel();
p.id = name;
p.name = name;
p.title = name;
p.percentWidth = 100;
p.percentHeight = 100;
var randColor:uint = Math.random() * 0xFFFFFF;
p.setStyle("backgroundColor", randColor);
var pR:PageListRenderer = new PageListRenderer();
var data:Object;
//Do something to get the data to be displayed;
pR.data = PageListRenderer;
p.addChild(pR);
myViewStack.addChild(p);
}
Cependant, je ne suis pas en mesure d'utiliser le même {data.name}
dans ce que je fais renderer dans le moteur de rendu DataGrid. Au lieu de cela, je suis "indéfini" pour chaque champ ... Comment vais-je passer le {httpService.lastResult.item}
au rendu de page aussi?
EDIT: Les modifications apportées ..
C'est le gestionnaire de résultats HTTPService.
private function httpResult_handler(evt:ResultEvent):void {
if (evt.result.software.item) {
data = XML(evt.result).descendants("item");
var item:Object = data;
for each(item in data) {
viewstack_addChild(item.name);
}
}
}
J'ai aussi essayé ..
private function httpResult_handler(evt:ResultEvent):void {
if (evt.result.software.item) {
data = httpService.lastResult.item;
var item:Object = data;
for each(item in data) {
viewstack_addChild(item.name);
}
}
}
J'ai aussi changé la pR.data = data
dans la fonction viewstack_addChild
. Je reçois encore les informations dans le DataGrid, et je reçois les données sur chaque page rendue mais chaque page a la même information (le premier résultat) au lieu de chaque résultat pour chaque page ...
Merci AndrewB! – medoix