Necesito establecer colores de fondo con los valores que obtengo de OData. Tengo el siguiente código:
oModel.read("/EspCoSet", { filters: [aFilters], success: function (oD, oR) { var oResults = oD.results; for (var i = 0; i < oResults.length; i++) { var color_fondo = oResults[i].ColorFondo; var color_texto = oResults[i].ColorTexto; } }, error: function (oE) { console.log("Error"); } });En la variable "color_fondo" estoy guardando el valor del color en HEX así "FFFFFF". ¿Hay alguna forma de poner este valor en las celdas correspondientes sin tocar CSS? Vi estos métodos:
[data-esp="Hospitalizado"] * { background-color: #FFFFFF !important; color: red !important; }pero si me gusta esto, necesito escribir la información nuevamente (la información que proviene de OData) y luego el valor de OData no tiene ningún uso. ¿Es posible?
Encontré una solución, que fue una fusión entre algunas respuestas en Internet. Para obtener los colores de OData, cambio un poco el backend. Mi tabla antes estaba con colores en HEX, ahora cambié por letras como esta:
color_fondo | color_texto WHITE | BLACK BLUE | RED GREEN | BLACKLuego, en el css pongo el nombre del color como clase, así:
.BLUE { background-color: #9dcfdd !important; }y finalmente en el controlador, cuando leo el modelo y obtengo el color respectivo para cada paciente, obtengo el ítem de cada celda y con addStyleClass aplico el color_fondo que es la variable que sale del OData.
oModel.read("/EspCoSet", { filters: [aFilters], success: function (oD, oR) { var oResults = oD.results; for (var i = 0; i < oResults.length; i++) { var color_fondo = oResults[i].ColorFondo; var color_texto = oResults[i].ColorTexto; var aItems = oTable.getItems(); aItems[i].addStyleClass(color_fondo); aItems[i].addStyleClass(color_texto); } }, error: function (oE) { console.log("Error"); } });y finalmente obtengo los colores en mi interfaz. Dejé esto aquí porque no pude encontrar ningún ejemplo de esto que obtenga los colores de OData, puede ayudar a alguien. Por cierto, lo siento por mi inglés, espero que todo haya quedado claro.
NOTA: Para el color del texto, debe ingresar el css *:
.RED *{ color: #c63637 !important; }