Chciałbym zbudować wtyczkę, która będzie działała na Ext.Grid i pozwoli na niektóre operacje na niej (dodawanie nowych wierszy, aktualizowanie ich w niektórych zdarzeniach itp.) Jaki typ komponentu powinien rozszerzyć mój plugin osiągnąć najlepsze wyniki?Budowanie wtyczki dla ExtJS Grid
Odpowiedz
ExtJS Siatka zapewnia dwa sposoby dodawania funkcjonalności:
- Plugins
- funkcje
Wtyczki: Wtyczki zapewniają niestandardowych funkcji dla komponentu . ExtJS 4 wprowadził ten system, aby programiści mogli wprowadzić swoje niestandardowe funkcje do komponentu. Jest on określony jako obiekt lub tablica obiektów przy użyciu atrybutu klasy siatki plugins
.
Zasadniczo wtyczka jest klasą ExtJS, która zazwyczaj nie musi rozszerzać żadnej klasy ExtJS. Obowiązkową częścią klasy wtyczek jest to, że powinna ona mieć metodę init
, którą system wtyczek wywołuje w celu zainicjowania wtyczki. Ta metoda powinna przyjąć parametr (który będzie odniesieniem do twojej siatki). Metoda init powinna konfigurować wszystkie niestandardowe zdarzenia (jeśli istnieją) lub podłączyć metodę, która nasłuchuje zdarzeń.
Oto przykładowy kod szkielet:
Ext.define('Ext.ux.grid.MyPlugin', {
alias: 'plugin.ux.muplugin',
init: function(grid) {
// init events and add listeners...
},
customFunction: function(par1, par2) {
// some code...
},
});
Cechy: Feature to rodzaj wtyczki, która jest dostępna tylko dla panelu siatki. Podstawową klasą dla funkcji jest Ext.grid.feature.Feature
. Tę klasę należy rozszerzyć, jeśli planujesz utworzyć funkcję.
Oto przykład:
Ext.define('Ext.grid.feature.MyFeature', {
extend: 'Ext.grid.feature.Feature',
alias: 'feature.myfeature',
// other methods..
});
To powinno pomóc Ci zacząć.
Jeśli uczysz się podanych wtyczek w src/grid/plugin/*
, nie rozszerzają one konkretnie żadnej klasy bazowej, tak jak to robią Ext.form.field.*
. Więc, imo, to musi być związane z tym, co musisz osiągnąć.
Na przykład zarówno RowEditing
i CellEditing
rozciąga Editing
jako klasy bazowej mieć możliwość edycji magazynu dla siatki, natomiast HeaderReorder
i rozciąga Ext.util.Observable
HeaderResizer
tylko tak, aby osiągnąć wspólny obsługi zdarzeń.
Najlepszym rozwiązaniem jest przedłużenie Ext.util.Observable
, jeśli żadna z funkcjonalności nie została zaimplementowana w żadnych klasach w Ext, więc przynajmniej możesz odpalić niektóre wydarzenia.
Wtyczki to nic innego jak zestaw funkcji dodanych do obiektu siatki. Popraw mnie jeśli się mylę;)
Dokumenty Sencha wskazują, że zaimplementowane przez użytkownika wtyczki powinny dziedziczyć z Ext.AbstractPlugin, za odpowiedź @Asky. Zobacz http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.AbstractPlugin – mwoodman
Wtyczki są funkcjami wielokrotnego użytku, które są wspólne dla różnych komponentów. wszystkie wtyczki EXTJS powinny dziedziczyć klasę Ext.AbstractPlugin
- 1. ExtJS 4 - Grid - Wyłącz wiersz wyboru dla konkretnej kolumny
- 2. Uzyskaj wybraną wartość kolumny wiersza extjs grid
- 3. Spożywanie daty JSON w panelu grid EXTJs
- 4. extjs grid - jak zrobić szerokość kolumny 100%
- 5. Budowanie architektury wtyczki za pomocą Adobe AIR
- 6. ExtJS Infinite Scroll Grid ze zdalnymi filtrami i sortowaniem
- 7. ExtJS grid- wyłączyć pewne pole na specjalnym rzędu
- 8. ColorField dla ExtJS 4.0
- 9. extJs gmappanel wewnątrz portalu extJs
- 10. extjs IDE dla szybszego rozwoju
- 11. Symbol zastępczy dla textarea? (ExtJS)
- 12. Architektura ExtJS dla aplikacji wielostronicowej
- 13. Niesamowita czcionka ExtJS ActionColumn
- 14. Wtyczki Sandboxed dla Node.js
- 15. ExtJS - Formularz złożyć kod
- 16. Ustaw domyślny filtr dla Kendo UI Grid
- 17. Porada, pomoc potrzebna w ExtJS 4: grid: edycja komórki: funkcja automatycznej edycji
- 18. ExtJS 4.1 Infinite Grid Scrolling nie działa z Dynamic store za pomocą loadData
- 19. Budowanie systemu wtyczek dla nodejs oparciu MVC platforma
- 20. Wtyczki Cordova/Phonegap dla Blackberry
- 21. Wtyczki wsparcia dla IOS Safari?
- 22. Weryfikuj niepodpisane wtyczki dla Eclipse
- 23. Alternatywa dla wtyczki ssl_requirement dla Rails 3?
- 24. Python 2.7, PIP: "Nieudane budowanie koła dla ..."
- 25. budowanie kontekstu dla bardzo dużego obrazu dokowanego
- 26. Budowanie API RESTful Flask dla Scrapy
- 27. Budowanie aplikacji dla początkujących w Smalltalk
- 28. Budowanie funkcji dla domeny .com w foreach
- 29. Budowanie Mesa dla Windows 7. Mesa 9.1
- 30. Budowanie interfejsów API usług REST dla Pythona
dzięki. Tego właśnie potrzebowałem. –
"Klasa AbstractPlugin jest klasą podstawową, z której powinny dziedziczyć wtyczki implementowane przez użytkownika. Ta klasa definiuje podstawowe API wtyczek używanych przez komponenty ..." - http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.AbstractPlugin – mwoodman
Czy ktoś może mi powiedzieć, gdzie właściwie utworzyć plik wtyczki i jak dołączyć go do siatki? – Snowman