Flex - Control AdvancedDataGrid

Introducción

El control AdvancedDataGrid agregó múltiples funcionalidades al control DataGrid estándar para agregar funciones de visualización de datos a la aplicación Flex. Estas funciones proporcionan un mayor control de la visualización de datos, la agregación de datos y el formato de datos.

Declaración de clase

A continuación se muestra la declaración de mx.controls.AdvancedDataGrid clase -

public class AdvancedDataGrid
   extends AdvancedDataGridBaseEx

Propiedades publicas

No Señor Descripción de propiedad
1

displayDisclosureIcon : Boolean

Controla la creación y visibilidad de iconos de divulgación en el árbol de navegación.

2

displayItemsExpanded : Boolean

Si es verdadero, expanda el árbol de navegación para mostrar todos los elementos.

3

firstVisibleItem : Object

El elemento del proveedor de datos que corresponde al elemento que se muestra actualmente en la fila superior del control AdvancedDataGrid.

4

groupedColumns : Array

Una matriz que define la jerarquía de instancias de AdvancedDataGridColumn al realizar la agrupación de columnas.

5

groupIconFunction : Function

Una función de devolución de llamada proporcionada por el usuario para ejecutar en cada elemento del grupo para determinar su icono de rama en el árbol de navegación.

6

groupItemRenderer : IFactory

Especifica el representador de elementos que se utiliza para mostrar los nodos de rama en el árbol de navegación que corresponden a los grupos.

7

groupLabelFunction : Function

Una función de devolución de llamada para ejecutar en cada elemento para determinar su etiqueta en el árbol de navegación.

8

groupRowHeight : Number

La altura de la fila agrupada, en píxeles.

9

hierarchicalCollectionView : IHierarchicalCollectionView

La instancia de IHierarchicalCollectionView que usa el control.

10

itemIcons : Object

Un objeto que especifica los iconos de los elementos.

11

lockedColumnCount : int

[anular] El índice de la primera columna del control que se desplaza.

12

lockedRowCount : int

[anular] El índice de la primera fila del control que se desplaza.

13

rendererProviders : Array

Matriz de instancias de AdvancedDataGridRendererProvider.

14

selectedCells : Array

Contiene una matriz de ubicaciones de celdas como índices de fila y columna.

15

treeColumn : AdvancedDataGridColumn

La columna en la que se muestra el árbol.

Propiedades protegidas

No Señor Descripción de propiedad
1

anchorColumnIndex : int = -1

El índice de columna del ancla actual.

2

caretColumnIndex : int = -1

El nombre de la columna del elemento debajo del símbolo de intercalación.

3

cellSelectionTweens : Object

Una tabla hash de interpolaciones de selección.

4

highlightColumnIndex : int = -1

El índice de columna del elemento que actualmente se desplaza sobre o debajo del cursor.

5

selectedColumnIndex : int = -1

La columna de la celda seleccionada.

6

treeColumnIndex : int

[solo lectura] El número de columna del árbol.

7

tween : Object

El objeto de interpolación que anima las filas Los usuarios pueden agregar detectores de eventos a este objeto para recibir una notificación cuando la interpolación comience, se actualice y finalice.

8

visibleCellRenderers : Object

Una tabla hash de los representadores de elementos del proveedor de datos actualmente a la vista.

Métodos públicos

No Señor Método y descripción
1

AdvancedDataGrid()

Constructor.

2

collapseAll():void

Contrae todos los nodos del árbol de navegación.

3

expandAll():void

Expande todos los nodos del árbol de navegación en el control.

4

expandChildrenOf(item:Object, open:Boolean):void

Abre o cierra todos los nodos del árbol de navegación debajo del elemento especificado.

5

expandItem(item:Object, open:Boolean, animate:Boolean = false, dispatchEvent:Boolean = false, cause:Event = null):void

Abre o cierra un nodo de rama del árbol de navegación.

6

getParentItem(item:Object):*

Devuelve el elemento principal de un elemento secundario.

7

isItemOpen(item:Object):Boolean

Devuelve verdadero si el nodo de rama especificado está abierto.

8

setItemIcon(item:Object, iconID:Class, iconID2:Class):void

Establece el icono asociado en el árbol de navegación para el elemento.

Métodos protegidos

No Señor Método y descripción
1

addCellSelectionData (uid:String, columnIndex:int, selectionData:AdvancedDataGridBaseSelectionData):void

Agrega información de selección de celda al control, como si usara el mouse para seleccionar la celda.

2

applyCellSelectionEffect (indicator:Sprite, uid:String, columnIndex:int, itemRenderer:IListItemRenderer):void

Configura el efecto para aplicar el indicador de selección.

3

applyUserStylesForItemRenderer (givenItemRenderer:IListItemRenderer):void

Aplica estilos del control AdvancedDataGrid a un representador de elementos.

4

atLeastOneProperty(o:Object):Boolean

Devuelve verdadero si el objeto tiene al menos una propiedad, lo que significa que el diccionario tiene al menos una clave.

5

clearCellSelectionData():void

Borra la información sobre la selección de celdas.

6

clearIndicators():void

[anular] Elimina toda la selección y los indicadores de resaltado y de intercalación.

7

clearSelectedCells(transition:Boolean = false):void

Borra la propiedad selectedCells.

8

dragCompleteHandler(event:DragEvent):void

[anular] Controlador del evento DragEvent.DRAG_COMPLETE.

9

dragDropHandler(event:DragEvent):void

[anular] Controlador del evento DragEvent.DRAG_DROP.

10

drawVerticalLine (s:Sprite, colIndex:int, color:uint, x:Number):void

[anular] Dibuja una línea vertical entre columnas.

11

finishKeySelection():void

[override] Establece los elementos seleccionados según las propiedades caretIndex y anchorIndex.

12

initListData (item:Object, adgListData:AdvancedDataGridListData):void

Inicializa un objeto AdvancedDataGridListData que utiliza el representador de elementos AdvancedDataGrid.

13

moveIndicators(uid:String, offset:int, absolute:Boolean):void

[anular] Mueve los indicadores de selección de celda y fila hacia arriba o hacia abajo según el desplazamiento dado a medida que el control desplaza su pantalla.

14

removeCellSelectionData(uid:String, columnIndex:int):void

Elimina la información de selección de celda del control.

15

selectCellItem (item:IListItemRenderer, shiftKey:Boolean, ctrlKey:Boolean, transition:Boolean = true):Boolean

Actualiza la lista de celdas seleccionadas, asumiendo que el mouse hizo clic en el renderizador de elementos especificado y que los modificadores de teclado están en el estado especificado.

dieciséis

selectItem (item:IListItemRenderer, shiftKey:Boolean, ctrlKey:Boolean, transition:Boolean = true):Boolean

[anular] Actualiza el conjunto de elementos seleccionados dado que se hizo clic con el mouse en el renderizador de elementos proporcionado y los modificadores del teclado están en el estado indicado.

17

treeNavigationHandler(event:KeyboardEvent):Boolean

Controlador de navegación por teclado para el árbol de navegación.

Eventos

No Señor Descripción del evento
1

headerDragOutside

Se envía cuando el usuario arrastra una columna fuera de su grupo de columnas.

2

headerDropOutside

Se envía cuando el usuario coloca una columna fuera de su grupo de columnas.

3

itemClose

Se envía cuando una rama del árbol de navegación está cerrada o contraída.

4

itemOpen

Se envía cuando se abre o expande una rama del árbol de navegación.

5

itemOpening

Se envía cuando se inicia una operación de apertura o cierre de la rama de un árbol.

Métodos heredados

Esta clase hereda métodos de las siguientes clases:

  • mx.controls.AdvancedDataGridBaseEx
  • mx.controls.AdvancedDataGridBase
  • mx.controls.listClasses.AdvancedDataGridBase
  • mx.core.ScrollControlBase
  • mx.core.UIComponent
  • mx.core.FlexSprite
  • flash.display.Sprite
  • flash.display.DisplayObjectContainer
  • flash.display.InteractiveObject
  • flash.display.DisplayObject
  • flash.events.EventDispatcher
  • Object

Ejemplo de control Flex AdvancedDataGrid

Sigamos los siguientes pasos para verificar el uso del control AdvancedDataGrid en una aplicación Flex creando una aplicación de prueba:

Paso Descripción
1 Cree un proyecto con un nombre HelloWorld en un paquete com.tutorialspoint.client como se explica en el capítulo Flex - Crear aplicación .
2 Modifique HelloWorld.mxml como se explica a continuación. Mantenga el resto de los archivos sin cambios.
3 Compile y ejecute la aplicación para asegurarse de que la lógica empresarial funcione según los requisitos.

A continuación se muestra el contenido del archivo mxml modificado src/com.tutorialspoint/HelloWorld.mxml.

<?xml version = "1.0" encoding = "utf-8"?>
<s:Application xmlns:fx = "http://ns.adobe.com/mxml/2009"
   xmlns:s = "library://ns.adobe.com/flex/spark"
   xmlns:mx = "library://ns.adobe.com/flex/mx
   width = "100%" height = "100%" minWidth = "500" minHeight = "500">
   
   <fx:Style source = "/com/tutorialspoint/client/Style.css" />	
   <fx:Script>
      <![CDATA[
         import mx.collections.ArrayCollection;
         [Bindable]
         public var data:ArrayCollection = new ArrayCollection ([   
            {value:"France", code:"FR"},
            {value:"Japan", code:"JP"},
            {value:"India", code:"IN"},
            {value:"Russia", code:"RS"},
            {value:"United States", code:"US"}		
         ]);
      ]]>
   </fx:Script>
   
   <s:BorderContainer width = "630" height = "480" id = "mainContainer" 
      styleName = "container">
      <s:VGroup width = "100%" height = "100%" gap = "50" 
         horizontalAlign = "center" verticalAlign = "middle">
         <s:Label id = "lblHeader" text = "Complex Controls Demonstration" 
            fontSize = "40" color = "0x777777" styleName = "heading" />
         
         <s:Panel id = "dataGridPanel" title = "Using DataGrid" 
            width = "500" height = "300">
            <s:layout>
               <s:VerticalLayout  gap = "10" verticalAlign = "middle" 
                  horizontalAlign = "center" />
            </s:layout>					
            
            <mx:AdvancedDataGrid dataProvider = "{data}" id = "advancedDataGrid" >
               <mx:columns>
                  <mx:AdvancedDataGridColumn dataField = "code" width = "100" 
                     headerText = "Code" />
                  <mx:AdvancedDataGridColumn dataField = "value" width = "200" 
                     headerText = "Value" />
               </mx:columns>
            </mx:AdvancedDataGrid>
            
            <s:HGroup width = "60%">
               <s:Label text = "Code :" /> 
               <s:Label text = "{advancedDataGrid.selectedItem.code}"
                  fontWeight = "bold" />
               <s:Label text = "Value :" /> 
               <s:Label text = "{advancedDataGrid.selectedItem.value}"
                  fontWeight = "bold" />
            </s:HGroup>
         </s:Panel>
      </s:VGroup>	 
   </s:BorderContainer>	
</s:Application>

Una vez que esté listo con todos los cambios realizados, compilemos y ejecutemos la aplicación en modo normal como hicimos en el capítulo Flex - Crear aplicación . Si todo está bien con su aplicación, producirá el siguiente resultado: [ Pruébelo en línea ]