¿Alguien tiene una idea de cómo podría agregar la clase "myClass" a alguna celda (por ejemplo, fila 5, columna 3) en un SlickGrid?Cómo agregar una clase a una celda en SlickGrid
Respuesta
Para añadir una clase CSS específica a algunos de las filas, use la opción "rowClasses" agregada recientemente en http://github.com/mleibman/SlickGrid/commit/26d525a136e74e0fd36f6d45f0d53d1ce2df40ed
No puede agregar una clase de CSS a una celda específica, solo a todas las celdas de una columna determinada: use la propiedad "cssClass" en la definición de la columna.
Quizás pueda usar una combinación de esos dos. Otra forma es poner un DIV interno dentro de una celda usando un formateador personalizado y establecer la clase allí. Como tiene acceso a la fila/celda dentro del formateador, puede decidir cómo renderizarlo.
¡Gracias por la idea! –
Sí, combinando los dos trabajos. Lo usé para establecer un color de fondo que cubriera más de la celda de lo que un formateador podría proporcionar. – zweiterlinde
Esto desapareció de 1.x y ahora existe en la rama (alpha) 2.x como 'rowCssClasses'. – Beau
..
$('.slick-cell').addClass('myClass'); // adds "myClass" to all cells...
..
$('.slick-row[row=1] .slick-cell[cell=1]').addClass('myClass'); // adds "myClass" to 2nd column of the 2nd row...
nota: índice de filas y columnas están basados en cero ...
Gran! ¡Gracias! –
¿Crees que esto se puede hacer de alguna manera antes de llamar a grid = new Slick.Grid ($ ("# table"), datos, columnas, opciones); ? –
Esto no funcionará ya que las filas se crean y eliminan dinámicamente, y el código anterior solo afectará a los nodos DOM que se muestran actualmente. – Tin
intentar algo como esto:
$(function(){
$('#element_id tr:eq(4)', '#element_id tr td:eq(2)').addClass('myClass');
});
la respuesta de la lata, pero ahora se denomina rowCssClasses (y se llama con un par de veces "indefinido", además de todas las filas regulares, por alguna razón, hice un
if(row == undefined){ return '' }
sólo para obtener a través de eso.
Como se mencionó anteriormente puede utilizar la propiedad CssClass añadir una clase CSS a todas las células de un (cabecera) con exclusión de la columna. CssClass es una propiedad de cadena pero puede modificar un poco el código de la grilla resbaladiza para hacer que se comporte como una función/cadena en su lugar y luego puede agregar clases condicionales a celdas individuales. He aquí un ejemplo (SlickGrid v2.1)
// modificar la función appendCellHtml y reemplace
var cellCss = "slick-cell l" + cell + " r" + Math.min(columns.length - 1, cell + colspan - 1) +
(m.cssClass ? " " + m.cssClass : "");
con
var cssClass = $.isFunction(m.cssClass) ? m.cssClass(row, cell, null /* or value */, m, d) : m.cssClass;
var cellCss = "slick-cell l" + cell + " r" + Math.min(columns.length - 1, cell + colspan - 1) +
(cssClass ? " " + cssClass : "");
y luego utilice CssClass exactamente igual que un formateador.
La mejor manera que he encontrado es agregar una propiedad 'asyncPostRender' al formateador de columnas. Esto le permite especificar una función que se llamará asincrónicamente después de que se represente la celda. En esa función, tiene acceso al nodo de la celda y los datos de la fila. Esto opera en una celda individual, y no en toda la columna de celdas.
var columns = [
{
id:'customer',
name:'Customer',
asyncPostRender: myObject.styleCustCell
}
];
myObject.styleCustCell = function(cellNode, row, rowData, columnsObject) {
$(cellNode).addClass('myCustomerCssClass');
};
Ahora hay una forma mejor de hacer esto que le permita abordar las células individuales arbitrarias:
https://github.com/mleibman/SlickGrid/wiki/Slick.Grid#wiki-setCellCssStyles
Excelente enlace, fácil y eficiente, ¡gracias! – Dani
Esa es la forma en que lo hago.Luego uso la función syncGridCellCssStyles desde este [enlace] (https://github.com/mleibman/SlickGrid/wiki/DataView) – michaelBehan
Sí se puede agregar clase a una celda en particular mediante el uso de la fila y la columna número
$(getCellNode(RowNumber, ColumnNumber)).addClass("ClassName");
ejemplo:
$(getCellNode(5, 3)).addClass("invalid");
Quiero cambiar el color de fondo en una gran cantidad de celdas según el valor de la celda. Quiero calcular el estilo del valor, cuando se muestra la celda, no de antemano. asyncPostRender es demasiado lento. No quiero cambiar el código de SlickGrid.
Pude establecer el estilo de celda basado en el valor utilizando un formateador personalizado, setTimeout y grid.getCellNode(row, cell) function. setTimeout es necesario para que podamos configurar el estilo de celda una vez que las celdas se hayan agregado al DOM.
Aquí hay un ejemplo basado en el ejemplo # 1 de SlickGrid. Las celdas % Complete se sombrean en rojo cuando < = 25% completado y verde cuando> = 75% completo, de lo contrario, son amarillas. Este ejemplo usa estilos CSS personalizados, pero también es posible agregar una clase CSS a cada celda. SlickGrid implementa sus celdas como elementos div, no como elementos td. El ejemplo también demuestra pasar "cuadrícula" a un formateador, usando un cierre e inicialización explícita. Esto es necesario si tiene múltiples cuadrículas en una página. Lo siento, el ejemplo no es muy corto.
Aquí está the same example in a JSFiddle.
var grid;
var post_format_timeout;
var post_format_cells = [];
function highlight_completion(grid, row, cell, value, cellNode) {
var $c = $(cellNode);
if (value <= 25)
col = '#ff8080';
else if (value >= 75)
col = '#80ff80';
else
col = '#ffff80';
$c.css('background-color', col);
}
function post_format() {
var n = post_format_cells.length;
for (var i=0; i<n; ++i) {
var info = post_format_cells[i];
var grid = info[0];
var row = info[1];
var cell = info[2];
var value = info[3];
var highlight_fn = info[4];
var cellNode = grid.getCellNode(row, cell);
highlight_fn(grid, row, cell, value, cellNode);
}
post_format_timeout = null;
post_format_cells = [];
}
function post_format_push(info) {
if (!post_format_timeout) {
post_format_timeout = setTimeout(post_format, 0);
post_format_cells = [];
}
post_format_cells.push(info);
}
function format_completion(grid, row, cell, value, colDef, dataContext) {
post_format_push([grid, row, cell, value, highlight_completion]);
return grid.getOptions().defaultFormatter(row, cell, value, colDef, dataContext);
}
$(function() {
var data = [];
for (var i = 0; i < 500; i++) {
data[i] = {
title: "Task " + i,
duration: "5 days",
percentComplete: Math.round(Math.random() * 100),
start: "01/01/2009",
finish: "01/05/2009",
effortDriven: (i % 5 == 0)
};
}
var my_format_completion = function(row, cell, value, colDef, dataContext) {
return format_completion(grid, row, cell, value, colDef, dataContext);
}
var columns = [
{id: "title", name: "Title", field: "title"},
{id: "duration", name: "Duration", field: "duration"},
{id: "%", name: "% Complete", field: "percentComplete", formatter: my_format_completion},
{id: "start", name: "Start", field: "start"},
{id: "finish", name: "Finish", field: "finish"},
{id: "effort-driven", name: "Effort Driven", field: "effortDriven"}
];
var options = {
enableCellNavigation: true,
enableColumnReorder: false,
explicitInitialization: true
};
grid = new Slick.Grid("#myGrid", data, columns, options);
grid.init();
});
<link rel="stylesheet" href="https://cdn.rawgit.com/6pac/SlickGrid/2.2.6/slick.grid.css" type="text/css"/>
<link rel="stylesheet" href="https://cdn.rawgit.com/6pac/SlickGrid/2.2.6/css/smoothness/jquery-ui-1.11.3.custom.css" type="text/css"/>
<link rel="stylesheet" href="https://cdn.rawgit.com/6pac/SlickGrid/2.2.6/examples/examples.css" type="text/css"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdn.rawgit.com/6pac/SlickGrid/2.2.6/lib/jquery.event.drag-2.2.js"></script>
<script src="https://cdn.rawgit.com/6pac/SlickGrid/2.2.6/slick.core.js"></script>
<script src="https://cdn.rawgit.com/6pac/SlickGrid/2.2.6/slick.grid.js"></script>
<div id="myGrid" style="width:500px; height:180px;"></div>
getCellNode lo hizo por mí. ¡Gracias! –
Desde el enlace publicado por Olleicua:
Suponga que tiene una cuadrícula con columnas:
[ "login", "nombre", "cumpleaños" , "edad", "likes_icecream", "favorite_cake"]
... y te gustaría destacar ht las columnas "cumpleaños" y "edad" para las personas cuyo cumpleaños es hoy, en este caso, filas en el índice 0 y 9. (La primera y la décima fila en la cuadrícula).
.highlight{ background: yellow }
grid.setCellCssStyles("birthday_highlight", {
0: {
birthday: "highlight",
age: "highlight"
},
9: {
birthday: "highlight",
age: "highlight"
}
})
- 1. Slickgrid agregar color a una celda/columna o fila
- 2. ¿Cómo poner HTML en una celda Slickgrid?
- 3. cómo aplico una clase a la celda del encabezado para una columna en slickgrid
- 4. cómo agregar una columna oculta en slickgrid
- 5. ¿Cómo agrego una clase css a filas particulares en slickGrid?
- 6. ¿Cómo puedo agregar una identificación única a una celda personalizada?
- 7. Cómo agregar una fila usando javascript en SlickGrid
- 8. ¿Puedo agregar una columna a slickgrid sobre la marcha?
- 9. ¿Cómo elimino una clase CSS de una celda jqGrid?
- 10. VBA Agregar una clase a una colección
- 11. ¿Cómo agregar @SerialVersionUID a una clase anónima?
- 12. cómo agregar un subtexto a una celda de la tabla?
- 13. Cómo agregar un menú desplegable a una celda JTable
- 14. Cómo agregar un JComboBox a una celda JTable?
- 15. Hacer una columna en SlickGrid un hipervínculo
- 16. Aplicar formato slickgrid a una fila específica
- 17. ¿Cómo agregar una información sobre herramientas a una celda en un jtable?
- 18. ¿Cómo agregar un método a una clase existente en PHP?
- 19. ¿Cómo se puede agregar programáticamente una variable de clase a una clase en Pharo?
- 20. Agregar un objeto a una matriz de una clase personalizada
- 21. Agregar una clase de CSS a una columna
- 22. Cómo agregar un manipulador de clics a una celda de celdas (o una fila)
- 23. CHtml :: link - cómo agregar una clase html?
- 24. Guardando cambios en SlickGrid
- 25. ¿Cómo puedo agregar una clase a un CodeIgniter ancla
- 26. ¿Cómo agregar una etiqueta de clase a cuerpo?
- 27. Objetivo C - ¿Cómo agregar un método a una clase existente?
- 28. Cómo agregar mensajes a una clase con addClassRules
- 29. Cómo agregar una clase css a un botón z3c.form
- 30. ¿Es posible una fila variable en SlickGrid?
he encontrado una forma eficaz de hacer esto, por favor ver mi respuesta a continuación: http://stackoverflow.com/a/36562844/218294 –