Muszę usunąć możliwość zaznaczania niektórych wierszy w mojej siatce.Usuwanie możliwości wybierania określonych wierszy w siatce ExtJS 4
używam CheckboxModel
selModel: Ext.create('Ext.selection.CheckboxModel', {
mode: 'SIMPLE'
})
Aby wyłączyć wybór używam beforeselect wydarzenie
beforeselect: function (row, model, index) {
if (model.data.id == '3') {
return false;
}
}
oraz ukrycie wyboru Używam specyficzną klasę dla wiersza i reguły CSS
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;
}
Może to nie jest najlepszym sposobem osiągnięcia pożądanego rezultatu, ale dla mojego zadania działa.
Pojawia się jednak inny problem: Zaznacz wszystko/Anuluj zaznaczenie Wszystkie pole wyboru w nagłówku siatki przestanie działać. Po pierwszym kliknięciu tego pola wyboru wszystkie linie oprócz tych, które nie powinny być wybrane, zostaną wybrane, ale jeśli klikniesz ponownie, nic się nie stanie. Oczywiście system próbuje ponownie wybrać wszystkie wiersze, ponieważ są one niezaznaczone.
Czy istnieje lepszy sposób rozwiązania problemu? Lub jak rozwiązać problem za pomocą tej metody.
Jedyna rzecz, która przychodzi na myśl - trzeba przepisać funkcje Zaznacz wszystko/Anuluj zaznaczenie wszystkich dla pola wyboru, ale nie jestem pewien, jak mogę to zrobić.
Z góry dziękuję za odpowiedzi i przepraszam, jeśli postawiłem moje pytanie nie zgodnie z zasadami.