sadece koleksiyonlarından bazı işlevlerinin (sıralama, filtreleme, CRUD ..) çoğaltmak istiyorum ama bunu Slick.Grid nasıl etkileşimde görmek için bunu kontrol etmelidir Slick.Dataview kullanma.
Eğer Slick.Grid koduna baktığımızda bunu sadece .getLength(), .getItem() ve .getItemMetadata() ve sonuncusu değildir Dataview 3 işlevlerini kullandığını görebilirsiniz uygulamak zorunludur. Yani Slick.Grid sadece 'Veri' (Dataview) ancak 'Kontrolör' dir okuma 'Görünüm' bileşeni temelde?
Eh aslında uygulamak ve size 'SlickGrid Example 4' de bir örnek bulabilirsiniz. Eğer geçiyoruz
// wire up model events to drive the grid
dataView.onRowCountChanged.subscribe(function (e, args) {
grid.updateRowCount();
grid.render();
});
dataView.onRowsChanged.subscribe(function (e, args) {
grid.invalidateRows(args.rows);
grid.render();
});
Eğer Dataview Güncelleştirme satır ekleyebilir, çıkartabilir zaman ateş alacak bu 2 olayların (onRowCountChanged, onRowsChanged) ve orada işlevleri kullanarak: o örnek
En önemli kısmı bu snippet'te olduğunu Bu bilgiyi Grid'e.
Yani temel fikir Mongo.Collection için aynı şeyi ve bildiğim kadarıyla gördüğünüz gibi Mongo.Cursor .onRowsChanged biraz benzer .observeChanges() sahiptir etmektir
Ödeme SlickGrid Belgenin sonunda API kaynağında. Hatta daha hassas kontrol için verimli bir farklı geçersiz kılma yöntemleri .invalidate (Tümü) Row (ler) (kullanmayı deneyin güncellemeleri sizin Izgara işlemek için
) ve ayrıca .updateRow() ve .updateCell(). Yanınızda kullanıcı etkileşimi gerekirse
"render": render,
"invalidate": invalidate,
"invalidateRow": invalidateRow,
"invalidateRows": invalidateRows,
"invalidateAllRows": invalidateAllRows,
"updateCell": updateCell,
"updateRow": updateRow,
"getViewport": getVisibleRange,
"getRenderedRange": getRenderedRange,
"resizeCanvas": resizeCanvas,
"updateRowCount": updateRowCount,
"scrollRowIntoView": scrollRowIntoView,
"scrollRowToTop": scrollRowToTop,
"scrollCellIntoView": scrollCellIntoView,
"getCanvasNode": getCanvasNode,
"focus": setFocus,
Izgara etkinliklere abone ve buna göre güncelleştirmek:
Bunlar çoğunlukla görünüm güncellemelerini işlemek için yöntemlerdir.
"onScroll": new Slick.Event(),
"onSort": new Slick.Event(),
"onHeaderMouseEnter": new Slick.Event(),
"onHeaderMouseLeave": new Slick.Event(),
"onHeaderContextMenu": new Slick.Event(),
"onHeaderClick": new Slick.Event(),
"onMouseEnter": new Slick.Event(),
"onMouseLeave": new Slick.Event(),
"onClick": new Slick.Event(),
"onDblClick": new Slick.Event(),
"onContextMenu": new Slick.Event(),
"onKeyDown": new Slick.Event(),
"onAddNewRow": new Slick.Event(),
"onValidationError": new Slick.Event(),
"onViewportChanged": new Slick.Event(),
"onColumnsReordered": new Slick.Event(),
"onColumnsResized": new Slick.Event(),
"onCellChange": new Slick.Event(),
"onActiveCellChanged": new Slick.Event(),
"onActiveCellPositionChanged": new Slick.Event(),
"onDragInit": new Slick.Event(),
"onDragStart": new Slick.Event(),
"onDrag": new Slick.Event(),
"onDragEnd": new Slick.Event(),
"onSelectedRowsChanged": new Slick.Event(),