ExtJS
Ext.dd.DragTracker használata
by Szabó Gábor (Gabesz) on ápr.10, 2010, under ExtJS, Webes cumók
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | var dragTracker = new Ext.dd.DragTracker({ /* * Megadható vele, hogy hány pixelnyi * egérmozgás után kezdődjön el a dragging */ tolerance : 3, /* * Az itt megadott értékkel (ms) késlelteti * a "drag start" eseményt */ autoStart : 300, /* * Ez a függvény hajtódik végre az egér lenyomása után, * első és egyetlen paramétere a mousedown event */ onBeforeStart: function( e ) {}, /* * Draggelés közben hajtódik végre folyamatosan, * első és egyetlen paramétere a mousemove event */ onDrag: function( e ) {}, /* * Ez a függvény hajtódik végre az egér felengedése után, * első és egyetlen paramétere a mouseup event */ onEnd: function( e ) {} }); /* * Az initEl paramétere a figyelni kívánt html elem */ dragTracker.initEl( HTMLElement ); |
Konfigurálható editor az egyes cellákhoz ExtJS gridben!
by Szabó Gábor (Gabesz) on jan.28, 2009, under ExtJS, Webes cumók
Nagyon szeretem az ExtJS-t, főleg a pontos api dokumentációt, de sajnos így is hiányos, ami miatt sok órát szoktam elvesztegetni. Nos a probléma egyszerűen megfogalmazva így néz ki: létre kell hoznom egy olyan szerkeszthető gridet (táblázatot) Ext-ben, hogy annak minden egyes cellája egy általam írt függvény által visszaadott form elemmel szerkeszthető legyen. Tehát például a második oszlop harmadik sorának celláját, más szerkesztővel lehessen megszerkeszteni, mint a második oszlop második sorának celláját. No problem, felütöm az API-t a megfelelő résznél és már ott is a megoldás, vagyis a grid-hez tartozó ColumnModel egyik függvénye, a setEditor, ami egy oszlop indexet (figyelem! az első oszlop a 0 indexű) és egy szerkesztőt vár. Na persze! Nem ilyen könnyű ám az élet. Az Ext Developer Team, ugyanis kihagyott egy fontos részletet az API-ból (illetve nem is hagyták ki, de a második paraméter objektumnak van feltüntetve, amire a paraszt azt hiszi, hogy az editor-t kell megadni), nevezetesen, hogy a második paraméter egy “konvertáló”: new Ext.grid.GridEditor(ide jön a form objektum). A baj ezzel az, hogy nincs feltüntetve sehol, egy eldugott ext témában találtam meg a megoldást. Tehát az editor megváltoztatásához (most egy szám beviteli mezőt fogok használni) egy ilyen parancs szükséges:
grid.getColumnModel().setEditor( index, new Ext.grid.GridEditor( new Ext.form.NumberField({}) ) );