Saya telah menerapkan kisi-kisi yang apik dengan model pemilihan khusus serta plugin pemilihan kotak centang kustom. Saya juga menambahkan kotak centang level grup untuk memungkinkan pemilihan toggling di level atas. Salah satu persyaratan saya adalah pengelompokan yang diciutkan masih dapat dipilih melalui kotak centang pengelompokan tingkat induk apa pun.
Batu sandungan saya sepertinya adalah saya tidak tahu cara memilih baris yang saat ini tidak terlihat di grup. Grid apik mempertahankan set item yang dipilih secara visual sementara tampilan data grid mempertahankan set lengkap item yang dipilih, terlihat atau tidak. Namun, saya tidak tahu cara mem-pipe data ketika mengklik kotak centang grup dari baris yang diciutkan.
Saya mengkonfigurasi grid saya seperti ini:
let checkboxSelectionModel = new Slick.CheckboxSelectionModel();
this.grid.setSelectionModel(checkboxSelectionModel);
this.grid.registerPlugin(new Slick.Data.GroupItemMetadataProvider());
let onSelectedRowIdsChanged = this.dataProvider.syncGridSelection(this.grid, true, true);
onSelectedRowIdsChanged.subscribe(
function(e: any, args: any)
{
//business logic stuff
}
);
let groupedCheckboxSelector = new Slick.GroupedCheckboxSelectColumn({
cssClass: "slick-cell-checkboxsel",
onSelectedRowIdsChangedHandler: onSelectedRowIdsChanged
});
let columns = this.grid.getColumns();
columns.unshift(groupedCheckboxSelector.getColumnDefinition());
this.grid.setColumns(columns);
this.grid.registerPlugin(groupedCheckboxSelector);
GIST untuk plugin kustom, terlalu lama untuk menyertakan di sini
Khususnya, jika Anda melihat garis 57
dari slick.checkboxselectionmodel
:
$.each(dataItem.rows, function(index, groupRow) {
var groupRowIndex = _self._grid.getData().getRowById(groupRow.id);
if (groupRowIndex) {
selection.push(groupRowIndex);
}
});
groupRowIndex tidak pernah diselesaikan untuk baris tersembunyi, dan karenanya tidak pernah dipilih. Saya mencoba untuk memperluas grup ketika diklik, kemudian menyelesaikan baris, yang berfungsi tetapi ketika grup itu runtuh sesudahnya, baris yang salah dipilih di grid.
bantuan apa pun akan sangat dihargai!
beberapa catatan:
- jika saya memilih satu baris dan menciutkan grupnya, item tetap mempertahankan pilihannya
- ada cabang berbeda dari slick grid yang memiliki implementasi seleksi grup yang sama sekali tidak fungsional
sumber
Jawaban:
inti untuk plugin yang diperbarui
Solusi fungsional yang saya yakin dapat menempatkan siapa pun yang mencari perilaku serupa di jalur yang benar, namun, saya tidak yakin seberapa baik dari kedua plugin ini akan bekerja secara independen. salah satu persyaratan saya adalah hanya mengizinkan pemilihan baris melalui kotak centang baris.
satu gotcha (yang saya yakin mudah ditingkatkan) adalah bahwa kotak centang tingkat grup masih perlu didefinisikan dalam operator format grup Anda
solusi utama untuk masalah saya adalah untuk memperluas semua grup yang diciutkan ketika membuat tingkat grup memilih / membatalkan pilihan, melakukan rutinitas pilih / batalkan pilihan, kemudian menutup semua grup yang sebelumnya diperluas
EDIT:
Ini gagal ketika grid memiliki sejumlah besar data (baris 10rb). Membuka kembali dengan hadiah.
Sepertinya hit kinerja karena harus memperluas dan menutup begitu banyak kelompok menyebabkan masalah.
sumber