Entonces, si quisiéramos tomar estos estilos y realmente escribirlos en CSS en lugar de en línea en JavaScript, podríamos hacerlo creando una clase de nombre de cliente CSS con esos estilos. Y podemos pasar el nombre de la clase como un array a la propiedad de clase de celda en la definición de la columna. Así que ahora estas celdas se renderizarán con esa clase de nombre de cliente y tendremos la capacidad completa de estilizarla usando CSS enganchándonos de ese nombre de clase.
Y finalmente, creo que el más interesante es la propiedad de clase de celda. También puede ser una función que se invoca. Así que podemos echar un vistazo a, por ejemplo, ¿es el valor un cero? Bueno, mostramos una clase de error o mostramos una clase de nombre de cliente. Y así podemos hacer una aplicación de clase advanced aquí haciendo una inspección en el valor para devolver o determinar qué clase aplicar realmente.
AG Grid va más allá al darnos reglas de clase de celda, que es simplemente formalizar el enfoque que mostré anteriormente. Así que para las reglas de clase de celda, le doy un objeto de diccionario de cada clase CSS que podría querer aplicar a la celda. Y luego le doy una función que devuelve verdadero o falso en cuanto a si esta clase debe ser aplicada a la celda o no. Así, por ejemplo, en este caso aquí, estoy aplicando una clase de valor de celda negativo si el valor es inferior a cero y una clase de valor de celda positivo si es mayor o igual a cero. Y puedes tener tantos valores en este diccionario como quieras.
Algunas cosas a tener en cuenta que quiero destacar. Así que los estilos de celda añaden y sobrescriben estilos existentes. Estos estilos nunca van a ser eliminados. Estos son estilos estáticos que se aplican. La clase de celda puede añadir clases pero nunca eliminar ninguna clase, ¿verdad? Podemos darle clases para aplicar, pero no podemos decir qué clases no deben ser aplicadas. Las reglas de clase de celda son la opción más advanced de las tres. Nos permite añadir y eliminar clases con esas funciones de predicado que controlan si una clase debe ser aplicada o no.
Estilo de fila. Así que eso es para las celdas, pero ¿cómo podemos querer estilizar realmente algunas filas? Bueno, para las filas, podemos usar el estilo de fila para añadir estilos a todas las filas. Podemos hacer GetRowStyle para añadir estilos de forma condicional, y luego, al igual que teníamos para las celdas, tenemos la clase de fila, getRowClass y las reglas de clase de fila para gestionar qué estilos se aplican. Así que, por ejemplo, para hacer un estilo de fila, Primero, porque estamos hablando de filas ahora y no de columnas, vamos a aplicar estas en el componente agGridReact directamente. Así que para agGridReact, vamos a decir, vale, para la clase de fila, aquí está la clase que quiero aplicar, o para las reglas de clase de fila, de nuevo, eso podría ser un diccionario, podemos aplicarlo, o para los estilos de fila, si sólo queremos aplicar algunos estilos estáticos, podemos hacerlo aquí. Aquí hay un ejemplo de mostrar esas reglas de clase de fila. Estos pueden ser simplemente diccionarios de nuevo con esas funciones de predicado que aplican estilos, estilos si estas funciones devuelven verdadero o que getRowClass puede ser una función que mira toda la fila de data y elige si aplicar o no una clase a ella.
Finalmente, quiero hablar de algunos de los temas incorporados. AG Grid tiene varios temas proporcionados. Valham es el tema original con el que AG Grid se lanzó por primera vez. Es muy denso, por lo que es genial si estás tratando de mostrar una gran cantidad de data. Tiene ese estilo denso. Alpine es el que hemos estado haciendo hoy. Tiene un aspecto bastante moderno y fresco pero es menos denso en el estilo Balham. Así que muestra algunos data pero no tanto data como el Balham y también tiene un estilo material incorporado y es el menos denso. Balham y Alpine también incluyen opciones de modo oscuro. Así que si queremos ir aquí queríamos cambiar la forma en que esto estaba estilizado aquí. Podría ir a mi CSS aquí o ¿es este un índice? Sí y podría cambiar el tema AG como si quisiera que esto fuera material en su lugar, podría incorporarlo, y ahora tenemos un aspecto material. Si quisiera hacer el BALHAM, también podría hacerlo y obtener ese aspecto realmente denso. Creo que lo deletreé bien. Sí, lo hice. Así es como controlas eso. Simplemente importas el tema que quieres aplicar a tu AG grid. Y esos son los tres temas que están incorporados en él. Puedes personalizar cualquiera de estos temas. Todos tienen variables CSS y reglas CSS. Además, si estás usando SAS, hay mezclas y funciones SAS para controlar o aplicar estos temas. Por ejemplo, si intentáramos personalizar el tema Alpine, podríamos hacerlo con SAS. Podríamos importar la mezcla AGThemeAlpine, y luego podríamos aplicarla a nuestra grid, y podemos controlar cosas como el tamaño de la grid, los colores activos, si se muestran o no los bordes. Muchas opciones de personalización aquí. Definitivamente recomendaría consultar la documentation para ver cómo puedes personalizar estos temas.
Comments