Solución:
Dijiste que no querías usar plantillas, pero creo que estabas hablando de plantillas de columna.
Puede cambiar el marcado del td en sí utilizando una plantilla de fila:
<script id="template" type="text/x-kendo-template">
<tr data-uid="#= uid #">
# this.columns.forEach(function(col) {
var val = data[col.field],
css,
style=""
cClasses="";
if (typeof col.attributes === 'function') {
css = col.attributes(data);
cClasses = css["class"];
style = css.style
}
#
<td class="#= cClasses #" style="#= style #">
#= data[col.field] #
</td>
# }) #
</tr>
</script>
Sin embargo, para que el bucle funcione, debe vincular su plantilla a la cuadrícula:
var grid = $("#grid").kendoGrid({
columns: [{
field: "name",
title: "Name",
attributes: function (e) {
return {
"class": "table-cell",
style: e.name == "Jane Doe" ?
"background-color: red" : "background-color: green"
};
}
}, {
field: "title",
title: "Title"
}],
dataSource: [{name: "Jane Doe", title: "Dr. Dr."},
{name: "John Doe", title: "Senior Citizen"}]
}).data("kendoGrid");
var template = kendo.template($("#template").html()).bind(grid);
grid.setOptions({
rowTemplate: template
});
(manifestación)
Como alternativa, también puede crear atributos como este:
{
field: "name",
title: "Name",
attributes: {
"class": "# if(data.name === 'Jane Doe') { # red # } else { # green # } #"
}
},
Esto tendría la ventaja de no usar la plantilla de fila, pero tendría que usar la sintaxis de la plantilla para la lógica.
(manifestación)
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)