Cuadrícula de datos
El componente UDDataGrid es una versión avanzada de la tabla que resulta útil para mostrar grandes cantidades de datos. Admite muchas de las mismas funciones que la tabla, pero también ofrece filtrado complejo, virtualización de filas, ordenación multicolumna y más.
Cuadrícula de datos simple

Las cuadrículas de datos cargan sus datos mediante el controlador de eventos -LoadRows. Deberá devolver una hashtable que contenga los datos de las filas y el número total de filas.
Las columnas se definen mediante hashtables.
Columnas
Las columnas se pueden personalizar usando New-UDDataGridColumn. Puede encontrar más información sobre este cmdlet aquí.
Renderizado de columnas personalizadas
Puede renderizar componentes personalizados en las columnas especificando render dentro de la hashtable de la columna. Puede acceder a los datos de la fila actual mediante la variable $EventData o $Row
En este ejemplo, el número se muestra en la columna de nombre con un componente New-UDTypography.
Columnas de ancho flexible
La fluidez o capacidad de respuesta de las columnas se puede lograr estableciendo la propiedad flex de una columna.
La propiedad flex acepta un valor entre 0 e ∞. Funciona dividiendo el espacio restante en la cuadrícula entre todas las columnas flex en proporción a su valor flex.
Por ejemplo, considere una cuadrícula con un ancho total de 500px que tiene tres columnas: la primera con width: 200; la segunda con flex: 1; y la tercera con flex: 0.5. La primera columna tendrá 200px de ancho, dejando 300px restantes. La columna con flex: 1 es el doble del tamaño de flex: 0.5, lo que significa que los tamaños finales serán: 200px, 200px, 100px.
Para establecer un ancho mínimo y máximo para una columna flex, establezca las propiedades minWidth y maxWidth en la columna.
Ajuste automático del tamaño de las columnas
Si desea que la cuadrícula de datos ajuste automáticamente el ancho de las columnas, puede usar el parámetro -AutoSizeColumns de New-UDDataGrid. La cuadrícula de datos evaluará el tamaño de los datos y determinará el mejor tamaño para las columnas después de que se carguen los datos. Esto puede provocar cierta reorganización de la interfaz de usuario después de que se carguen los datos.
LoadRows
El parámetro -LoadRows se usa para devolver datos para la cuadrícula de datos. El estado de la tabla se proporcionará al controlador de eventos como $EventData. Encontrará las siguientes propiedades dentro del objeto $EventData.
Filter
Un objeto de filtro que puede usar para construir filtros contra sus datos.
Hashtable
Page
La página actual. Comienza en 0.
Integer
PageSize
El número de registros en una página.
Integer
Sort
Las opciones de ordenación de la tabla
Hashtable
Paginación
Para implementar la paginación, puede acceder a las propiedades page y pageSize de la variable $EventData. Si usa una fuente de datos remota, querrá implementar una lógica de paginación personalizada. A continuación se muestra un ejemplo de uso de las propiedades de paginación para paginar las filas localmente. Según su fuente de datos (p. ej., SQL), puede paginar los datos de forma diferente.
Out-UDDataGridData implementa automáticamente la paginación, y no es necesario hacer lo anterior si tiene todos sus datos en memoria. Lo anterior solo se usa con fines de demostración.
Filtrado
La cuadrícula de datos admite el filtrado de datos según cada columna. Se pueden definir varios filtros para permitir al usuario restringir el conjunto de datos mostrado. De forma predeterminada, el cmdlet Out-UDDataGridData implementa el filtrado para datos locales. Cuando se usa una fuente de datos remota, como SQL, se sugiere implementar un filtrado personalizado para mejorar la experiencia del usuario y el rendimiento.

Estructura de datos del filtro
El objeto de filtro se incluye en el $EventData del controlador de eventos -LoadRows cuando se define un filtro. El objeto tiene la siguiente estructura.
Items
La propiedad items contiene una colección de campos, operadores y valores. Puede usarlos para filtrar sus datos.
Field
El nombre del campo por el que filtrar
String
Operator
El tipo de operador que se usará al filtrar los datos.
String
Value
El valor usado para filtrar
Object
LogicOperator
El campo del operador lógico se usa para especificar el vínculo entre los filtros. Puede ser and u or.
QuickFilterValues
Contiene una colección de valores de filtro rápido que puede elegir cómo aplicar a sus datos.
QuickFilterLogicOperator
Contiene el operador lógico para los valores de filtro rápido especificados por el usuario. Puede ser and u or.
Filtro personalizado
El cmdlet Out-UDDataGridData proporciona una implementación de filtrado para datos estáticos. Si usa este cmdlet, no necesita implementar el filtrado manualmente. Si tiene una fuente de datos remota, querrá proporcionar una implementación personalizada para el filtrado. A continuación se muestra un ejemplo de uso de la estructura de filtro en $EventData para eliminar filas según los filtros proporcionados por el usuario.
Filtro rápido personalizado
El filtro rápido es similar a un simple cuadro de búsqueda. Puede habilitar el filtrado rápido con el parámetro -ShowQuickFilter en New-UDDataGrid. Aparecerá un cuadro de búsqueda en la parte superior derecha de la cuadrícula de datos. Cuando el usuario introduzca un valor en la cuadrícula de datos, se proporcionará la información del filtro rápido.
A continuación se muestra un ejemplo de cómo usar los filtros rápidos. Out-UDDataGridData implementa el filtrado rápido y no es necesario cuando se usan datos locales. Lo siguiente se hace solo con fines de demostración.
Ordenación

El objeto $EventData contendrá una propiedad Sort cuando el usuario ordene la cuadrícula de datos. Contiene propiedades para cada columna que se ordena. Las propiedades comenzarán en 0 y se incrementarán a medida que se ordenen más columnas.
Por ejemplo, puede acceder a la primera columna ordenada de la siguiente manera.
También recibirá la dirección de ordenación de cada columna.
Field
El campo por el que ordenar.
String
Sort
La dirección en la que ordenar el campo.
asc, desc
Contenido detallado

Puede usar el controlador de eventos -LoadDetailContent para mostrar información adicional sobre la fila que está expandiendo. La información sobre la fila actual está disponible en $EventData.row.
Ejemplo: cuadrículas de datos anidadas
Puede usar el parámetro -LoadDetailContent para buscar datos anidados sobre un objeto. En este ejemplo, cargamos una cuadrícula de datos de máquinas virtuales y mostramos el nombre, el sistema operativo, la memoria y los núcleos de CPU. Al expandir el contenido detallado se proporciona una cuadrícula de datos de las tarjetas de red disponibles en la máquina virtual. En este ejemplo usamos datos ficticios, pero podría usar cualquier cmdlet disponible para PowerShell Universal.
Edición
Las tablas proporcionan compatibilidad con el editor especificando el controlador de eventos -OnEdit. Los nuevos datos de la fila se proporcionarán como $EventData. Puede elegir devolver información actualizada de la fila (por ejemplo, ajustar algo que el usuario haya introducido) y devolverla desde el controlador de eventos. Si no devuelve nada, la fila reflejará lo que el usuario introdujo.
El $EventData tiene el siguiente formato.
Asegúrese de proporcionar la propiedad editable a cada columna que desee que el usuario edite.
Selección
Puede habilitar la selección de filas usando el parámetro -CheckboxSelection para mostrar casillas de verificación para las filas a seleccionar. La selección de filas requiere un ID determinista para las filas de datos proporcionadas. En el ejemplo siguiente, verá que cada fila tiene un ID específico especificado.
Puede acceder a los datos seleccionados con el controlador de eventos -OnSelectionChange o recuperando los ID de las filas mediante Get-UDElement.
Exportación personalizada
Para anular la funcionalidad de exportación predeterminada, use el controlador de eventos -OnExport. $EventData será el mismo objeto de contexto usado para -LoadRows. Debe usar Out-UDDataGridExport para devolver los datos desde -OnExport.
Múltiples tipos de exportación
Cuando use una exportación personalizada, puede usar el parámetro -ExportOptionspara definir varios tipos de exportación. Cuando el usuario seleccione el tipo de exportación, puede comprobar la propiedad Type de $EventDatapara determinar qué tipo de exportación producir.
Ejemplo: datos estáticos
En este ejemplo, generamos un array de 10.000 registros. Crearemos una nueva función, Out-UDDataGridData, para gestionar la paginación, la ordenación y el filtrado. Esta función ya está incluida en el módulo Universal.

Ejemplo: datos SQL
En este ejemplo, consultaremos la base de datos de PowerShell Universal con dbatools.

API
Última actualización
¿Te fue útil?