Comunidad de diseño web y desarrollo en internet online

Advanced Datagrid Flex 3 con HTTP

Citar            
MensajeEscrito el 21 Oct 2014 12:57 pm
Hola, tengo un advanced datagrid y no puedo llenarla desde un HTTP, que pone los datos en una variable XMLList llamada UP1.
Cuando vuelvo del HTTP, traceo la variable XMLList y trae bien los datos.

El error en la línea marcada con negrita, es: Data binding will not be able to detect assignments to "UP1".

(Nota: Si a la vuelta del HTTP pongo DataGridPersonas.dataProvider = UP1, lo llena perfecto, pero NO CLASIFICA).

Código:
<mx:AdvancedDataGrid id="DataGridPersonas" initialize="GC.refresh();" .....>
<mx:dataProvider>
<mx:GroupingCollection id="GC" source="{UP1}">
<mx:Grouping>
<mx:GroupingField name="ju11"/>
<mx:GroupingField name="tit11"/>
</mx:Grouping>
</mx:GroupingCollection>
</mx:dataProvider>


Les agradeceré si me ayudan para ver cómo hago el binding de UP1
Gracias !!!!

Por grodrig61

Claber

223 de clabLevel



 

chrome
Citar            
MensajeEscrito el 21 Oct 2014 02:44 pm
Debe estar marcada como bindable y ser publica

[Bindable]
public var UP1:XMLList;

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Oct 2014 02:51 pm
Gracias Jorge, hice algunos cambios, y clasifico por AS3, pero no clasifica nada. Me llena la grilla, pero como una grilla normal. El código, sencillísimo, lo saqué del Libro de Flex, es:

UP1 = evt.result.personas;
myADG.dataProvider = evt.result.personas;
var myGroupColl:GroupingCollection = new GroupingCollection();
myGroupColl.source = UP1;
var group:Grouping = new Grouping();
var gf:GroupingField = new GroupingField("ju11");
group.fields = [gf];
myGroupColl.grouping = group;
myGroupColl.refresh();
myADG.dataProvider = myGroupColl;
myADG.dataProvider.refresh();

<mx:AdvancedDataGrid id="myADG" creationComplete="init()"...........

Te agradecería si me puedes ayudar con esto, puede ser asincronismo ? No lo veo

Gracias !

Por grodrig61

Claber

223 de clabLevel



 

chrome
Citar            
MensajeEscrito el 21 Oct 2014 04:04 pm
Casi no trabajé con AdvancedDataGrid, asi que no puedo agregar mas de lo que dice el libro ;)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Oct 2014 05:01 pm
Ok, gracias Jorge! si consigo resolverlo de manera eficiente, publico la solución :D

Por grodrig61

Claber

223 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 Oct 2014 07:19 am
Yo es que no entiendo muy bien qué es lo que necesitas hacer.
Mira en mi aplicación infoRetos, si le das al botón Top te aparecerá un datagrid en el que puedes ordenar de acuerdo en la columna que selecciones.
¿Es esto lo que necesitas?

Un saludo

Por empardopo

71 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 Oct 2014 12:34 pm
Gracias por responder empardopo, detallo:

Tengo una advanceddatagrid con n registros, que se llena desde un servicio HTTP. Los datos vienen perfecto. La primer columna es Año. Las restantes....no importan a los efectos que consulto.

Lo que quiero hacer, es agrupar por Año. NO ordenar, eso está resuelto en el componente.

Ejemplo: (Ver ejemplo de grilla)
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/controls/AdvancedDataGrid.html#includeExamplesSummary

Paso código. Muchas gracias !

// Grilla //
<mx:AdvancedDataGrid id="myADG" dataProvider="{UP1}" creationComplete="init()">
<mx:columns>
<mx:AdvancedDataGridColumn dataField="ju11"/>

//voy a buscar datos //
private function init():void {
CargoPersonas.send();
}

// vuelvo con datos, El advanceddatagrid se llena de datos perfecto, PERO NO AGRUPA.
private function CheckCargoPersonas(evt:ResultEvent):void {
UP1 = evt.result.personas;
myADG.dataProvider = UP1;
var myGroupColl:GroupingCollection = new GroupingCollection();
myGroupColl.source = myADG.dataProvider;
var group:Grouping = new Grouping();
var gf:GroupingField = new GroupingField("ju11");
group.fields = [gf];
myGroupColl.grouping = group;
myGroupColl.refresh();
myADG.dataProvider = myGroupColl;
}

Por grodrig61

Claber

223 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 Oct 2014 06:26 am
En el link que pones de Adobe todo está hecho con MXML y no con código al igual que en este otro link que no sé si también podría servirte.

Yo te digo que hace poco he tenido un problema similar en el que quería añadir a mi dataprovider un campo calculado y luego ordenar por él y no me lo hacía. La solución para mí creo recordar que fue modificar mi dataprovider añadiéndole el campo calculado que quería y luego así cuando dicho nuevo campo se lo añadía a mi datagrid ya me dejaba ordenar por él.

No sé si te servirá. Lo siento pero es que no he usado nunca los advanceddatagrid.

Saludos

Por empardopo

71 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 Oct 2014 08:55 pm
Ya me pongo a revisarlo, muchisimas gracias!!!

Por grodrig61

Claber

223 de clabLevel



 

chrome
Citar            
MensajeEscrito el 24 Oct 2014 07:18 am

grodrig61 escribió:

Ya me pongo a revisarlo, muchisimas gracias!!!

Ya nos cuentas si te ha funcionado.
Saludos

Por empardopo

71 de clabLevel



 

chrome
Citar            
MensajeEscrito el 27 Oct 2014 01:06 pm
En mi caso en particular no he logrado que funcione, pero envío un link con un "parche/truco" donde un usuario manifiesta resolverlo.

Gracias

http://foros.cristalab.com/agrupar-datos-con-groupingcollection2-en-flex-4.5-t101573/

Por grodrig61

Claber

223 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.