Qualcuno ha un'idea di come aggiungere la classe "myClass" a una cella (ad esempio, riga 5, colonna 3) in una SlickGrid?Come aggiungere una classe a una cella in SlickGrid
risposta
Per aggiungere una classe CSS specifica ad alcune delle le righe, utilizzare l'opzione "rowClasses" aggiunta di recente in http://github.com/mleibman/SlickGrid/commit/26d525a136e74e0fd36f6d45f0d53d1ce2df40ed
Non è possibile aggiungere una classe CSS a una cella specifica, solo a tutte le celle in una determinata colonna: utilizzare la proprietà "cssClass" nella definizione della colonna.
Forse è possibile utilizzare una combinazione di questi due. Un altro modo è mettere un DIV interno in una cella usando un formattatore personalizzato e impostare la classe lì. Dato che hai accesso a una riga/cella all'interno del formattatore, puoi decidere come renderlo.
Grazie per l'idea! –
Sì, combinando le due opere. L'ho usato per impostare un colore di sfondo che coprisse più parti di quello che un formatter potrebbe fornire. – zweiterlinde
Questo è scomparso da 1.xe ora esiste nel ramo (alpha) 2.x come '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: indice righe e colonne sono a base zero ...
Grande! Grazie! –
Pensa che questo possa essere fatto in qualche modo prima di chiamare a grid = new Slick.Grid ($ ("tabella #"), dati, colonne, opzioni); ? –
Ciò non funzionerà poiché le righe vengono create e rimosse dinamicamente e il codice sopra avrà effetto solo sui nodi DOM attualmente visualizzati. – Tin
provare qualcosa di simile:
$(function(){
$('#element_id tr:eq(4)', '#element_id tr td:eq(2)').addClass('myClass');
});
risposta di Tin, ma è ora chiamato rowCssClasses (e viene chiamato con "indefinito" un paio di volte in aggiunta a tutte le righe regolari per qualche ragione, ho fatto un
if(row == undefined){ return '' }
solo per ottenere attraverso questo.
Come accennato in precedenza è possibile utilizzare la proprietà CssClass per aggiungere una classe CSS a tutte le cellule di un (intestazione di colonna) escluso. CssClass è una proprietà stringa, ma è possibile modificare un po 'il codice della griglia slick per farlo funzionare come una funzione/stringa e quindi è possibile aggiungere classi condizionali a singole celle. Ecco un esempio (SlickGrid v2.1)
// Modificare l'appendCellHtml funzione e sostituire
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 : "");
e quindi utilizzare CssClass esattamente come un formattatore.
Il modo migliore che ho trovato è aggiungere una proprietà 'asyncPostRender' al formattatore di colonne. Ciò consente di specificare una funzione che verrà chiamata in modo asincrono dopo il rendering della cella. In quella funzione hai accesso al nodo della cella e ai dati della riga. Funziona su una singola cella e non sull'intera colonna di celle.
var columns = [
{
id:'customer',
name:'Customer',
asyncPostRender: myObject.styleCustCell
}
];
myObject.styleCustCell = function(cellNode, row, rowData, columnsObject) {
$(cellNode).addClass('myCustomerCssClass');
};
ora c'è un modo migliore di fare questo che permette di affrontare arbitrari singole celle:
https://github.com/mleibman/SlickGrid/wiki/Slick.Grid#wiki-setCellCssStyles
Ottimo link - facile ed efficiente - grazie! – Dani
Che il modo in cui lo faccio.Quindi uso la funzione syncGridCellCssStyles da questo [collegamento] (https://github.com/mleibman/SlickGrid/wiki/DataView) – michaelBehan
Sì è possibile aggiungere classe a una particolare cella utilizzando riga e colonna numero
$(getCellNode(RowNumber, ColumnNumber)).addClass("ClassName");
esempio:
$(getCellNode(5, 3)).addClass("invalid");
Desidero modificare il colore di sfondo in un numero elevato di celle in base al valore nella cella. Voglio calcolare lo stile dal valore, quando la cella è visualizzata, non in anticipo. asyncPostRender è troppo lento. Non voglio modificare il codice SlickGrid.
Sono stato in grado di impostare lo stile della cella in base al valore utilizzando un formattatore personalizzato, setTimeout e lo grid.getCellNode(row, cell) function. setTimeout è necessario in modo che possiamo impostare lo stile della cella dopo che le celle sono state aggiunte al DOM.
Ecco un esempio basato sull'esempio 1 di SlickGrid. Le celle % complete di sono ombreggiate in rosso quando < = 25% complete e verdi quando> = 75% complete, altrimenti giallo. Questo esempio utilizza stili CSS personalizzati, ma è anche possibile aggiungere una classe CSS a ogni cella. SlickGrid implementa le sue celle come elementi div, non come elementi td. L'esempio mostra anche il passaggio di "griglia" a un formattatore, utilizzando una chiusura e l'inizializzazione esplicita. Questo è necessario se hai più griglie su una pagina. Siamo spiacenti, l'esempio non è molto breve!
Qui è 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 ha fatto per me. Grazie! –
Dal link inviato da Olleicua:
Supponiamo di avere una griglia con colonne:
[ "login", "Nome", "compleanno" , "age", "likes_icecream", "favorite_cake"]
... e vorresti fare un highlig ht le colonne "compleanno" e "età" per le persone il cui compleanno è oggi, in questo caso, le righe agli indici 0 e 9. (La prima e la decima riga nella griglia).
.highlight{ background: yellow }
grid.setCellCssStyles("birthday_highlight", {
0: {
birthday: "highlight",
age: "highlight"
},
9: {
birthday: "highlight",
age: "highlight"
}
})
- 1. come aggiungere una colonna nascosta in slickgrid
- 2. Come aggiungo una classe css a particolari righe in slickGrid?
- 3. Slickgrid aggiunge colore a una cella/colonna o riga
- 4. Come si aggiunge una classe a una cella JointJS?
- 5. Come aggiungere un suggerimento a una cella in un jolly?
- 6. Come aggiungere un menu a discesa a una cella JTable
- 7. aggiungere una funzione a una classe decorare
- 8. Come aggiungere una classe a particolari li?
- 9. Come inserire l'HTML nella cella Slickgrid?
- 10. Come posso aggiungere un ID univoco a una cella personalizzata?
- 11. come aggiungere un sottotesto a una cella di tabella?
- 12. Silverlight (3.0): Come aggiungere il riempimento cella a una griglia?
- 13. Come posso aggiungere due righe in una singola cella pdf?
- 14. Come si può aggiungere una variabile di classe a una classe in Pharo?
- 15. Come aggiungere un attributo RowVersion a una classe EF4
- 16. Come aggiungere una classe css a un pulsante z3c.form
- 17. Come aggiungere messaggi a una classe con addClassRules
- 18. CHtml :: link - come aggiungere una classe html?
- 19. Come aggiungere una classe a ActiveForm nel framework Yii 2.0?
- 20. Yii2 - Come aggiungere una classe CSS a un campo ActiveForm
- 21. Creazione di una colonna in SlickGrid con un collegamento ipertestuale
- 22. Come aggiungere una classe con React.js?
- 23. Aggiungere un operatore negativo (?) A una classe in C#
- 24. Come aggiungere una classe a una nuova riga in un data jquery?
- 25. Applica la formattazione slickgrid a una riga specifica
- 26. Scrittura di una stringa a una cella in Excel
- 27. Come aggiungere una matrice a una riga SQL in C#?
- 28. Come aggiungere una riga a una TableViewSection in Titanium?
- 29. Aggiunta di testo a una cella in Excel tramite VBA
- 30. Come aggiungere più valori a una classe TreeNode in classe C#
ho trovato un modo efficace per fare questo, si prega di vedere la mia risposta qui sotto: http://stackoverflow.com/a/36562844/218294 –