Devo rimuovere la possibilità di selezionare alcune righe nella mia griglia.Rimuovi la possibilità di selezionare righe specifiche nella griglia ExtJS 4
Io uso CheckboxModel
selModel: Ext.create('Ext.selection.CheckboxModel', {
mode: 'SIMPLE'
})
Per disabilitare la selezione Io uso beforeselect evento
beforeselect: function (row, model, index) {
if (model.data.id == '3') {
return false;
}
}
E per nascondere casella di controllo che uso classe specifica per riga e css regola
viewConfig: {
getRowClass: function(record, index) {
var id = record.get('id');
return id == '3' ? 'general-rule' : '';
}
}
.general-rule .x-grid-row-checker {
left: -9999px !important;
position: relative;
}
Forse questo non è il modo migliore per ottenere il risultato desiderato, ma per il mio compito funziona.
Tuttavia, viene visualizzato un altro problema: Seleziona tutto/Deseleziona tutto La casella di controllo nell'intestazione della griglia smette di funzionare. Quando clicchi su questo ckechbox tutte le linee tranne quelle che non dovrebbero essere selezionate selezioneranno, ma se clicchi di nuovo, non succede nulla. Ovviamente, il sistema tenta di riselezionare tutte le righe, poiché non sono selezionate.
C'è un modo migliore per risolvere il problema? O come risolvere un problema con questo metodo.
L'unica cosa che viene in mente - è necessario riscrivere il Seleziona tutto/Deseleziona Tutti funzioni per la casella di controllo, ma non sicuro di come posso farlo.
Grazie in anticipo per le vostre risposte e mi scuso se ho fatto la mia domanda non è secondo le regole.