tengo un problema que supongo que debe ser facil si sabes, pero yo no consigo hacerlo
Tengo un advanceddatagrid con varias columnas. Necesito que, cuando arrastro la cabecera de una de ellas fuera del datagrid y suelte el boton, esta columna se oculte.
Mi problema principal es que no consigo que el evento se dispare. Con headerShift no he tenido problemas, pero con el evento de sacar la cabecera y soltarla fuera no puedo. No me permite moverla nada mas que a lo largo de las cabeceras.
Ya que el codigo es muy extenso, pego un ejemplo simplificado que me parece más concreto:
Código ActionScript :
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="100%" height="100%"
xmlns:dgm="milcomponents.dataGridMuestra.*" creationComplete="crearDG();" >
<mx:Script>
<![CDATA[
import mx.events.AdvancedDataGridEvent;
import mx.controls.AdvancedDataGrid;
import mx.collections.ArrayCollection;
import mx.collections.HierarchicalData;
[Bindable] protected var cajaSearch:AdvancedDataGrid;//DataGridResultados;
[Bindable] protected var myXML:XML= <rs>
<item tieneProp="0" tipo="1" estado="0" fecha="10/03/2009" titulo="Barbara Jennings" agencia="Arizona" autor="Gacia Garcia" modAdelanto="">
<detail texto="prueba con la imagen pequenia" ruta="assets/pruebaPeque.png"
height="31" width="40"/>
</item>
<item tieneProp="0" tipo="1" estado="1" fecha="10/03/2009" titulo="Dana Binn" agencia="Belen" autor="Gacia Garcia" modAdelanto="">
<detail texto="Esto es una imagen" ruta="assets/prueba2.png"
height="136" width="183"/>
</item>
<item tieneProp="0" tipo="1" estado="1" fecha="10/03/2009" titulo="Joe Smith" agencia="Cerdeña" autor="Gacia Garcia" modAdelanto="">
<detail texto="Esto es una imagen" ruta="assets/prueba1.png"
height="134" width="182"/>
</item>
<item tieneProp="0" tipo="3" estado="3" fecha="10/03/2009" titulo="Alice Treu" agencia="Deli" autor="Gacia Garcia" modAdelanto="">
<detail texto="Esto es un RSS Externo -> No borrar"/>
</item>
<item tieneProp="1" tipo="0" estado="1" fecha="10/03/2009" titulo="Barbara Jennings" agencia="Arizona" autor="Gacia Garcia" modAdelanto="">
<detail texto="Esto es una articulo con imagen" ruta="assets/prueba3.png"
height="122" width="183"/>
</item>
<item tieneProp="1" tipo="3" estado="0" fecha="10/03/2009" titulo="Dana Binn" agencia="Belen" autor="Gacia Garcia" modAdelanto="">
<detail texto="Esto es un RSS Externo -> No borrar"/>
</item>
<item tieneProp="1" tipo="2" estado="2" fecha="10/03/2009" titulo="Joe Smith" agencia="Cerdeña" autor="Gacia Garcia" modAdelanto="">
<detail texto="balbalabalablabalbalababalabalablabablabalbalalabalabba"/>
</item>
</rs>;
protected function crearDG():void{
cajaSearch = new AdvancedDataGrid;//DataGridResultados;
cajaSearch.dropEnabled = true;
cajaSearch.dragEnabled = true;
cajaSearch.draggableColumns = true;
cajaSearch.dragMoveEnabled = true;
cajaSearch.percentWidth = 100;
cajaSearch.dataProvider = myXML.children();
//cajaSearch.cargarDataProvider();
cajaSearch.addEventListener(AdvancedDataGridEvent.HEADER_DROP_OUTSIDE, mensaje);
addChildAt(cajaSearch,0);
}
//Aki nunca llega!
private function mensaje(e:AdvancedDataGridEvent):void{
trace("DROP");
var indexCol:uint = e.columnIndex;
var cols:Array = cajaSearch.columns;
//la volvemos invisible
cols[indexCol].visible = false;
//actualizo las columnas
cajaSearch.columns = cols;
}
]]>
</mx:Script>
</mx:Application>
No se si no salta porque las cabeceras no forman parte de un grupo, pq la definición que se da en flex 3, dice:
"Dispatched when the user drops a column outside of its column group. TheAdvancedDataGrid control doesn't provide a default handler for this event. "
Muchas gracias de antemano, a ver si hay suerte y alguien sabe como hacerlo, que yo estoy venga a darle vuelta sy no lo consigo.
Byes
