ComboBox.getSelectedRecord()

2009.04.16. 11:18 stack

Hosszan nézegettem a doksit, de nem találtam olyan függvényt, ami megadná a ComboBox-hoz tartozó kiválasztott rekordot. Ellentmondásos számomra, hogy ha van függvény a Store lekérésére, akkor miért nincs a kiválasztott rekord lekérésére, illetve ehhez miért kell egy privát (és ezáltal a doksiban sem szereplő) eljárást használni?

Ext.override(Ext.form.ComboBox, {
    getSelectedRecord: function() {
        return this.findRecord(this.valueField, this.getValue());
    }
});

Példa:

2 komment

Címkék: combobox override record

ComboBox.tpl

2009.03.17. 22:37 stack

Ha a ComboBox elemei között az egyiknek a displayField mezője üres, akkor a legördülő listában az adott elem csupán néhány pixel magas lesz.

new Ext.form.ComboBox({
    renderTo: Ext.getBody(),
    displayField: 'display',
    valueField: 'value',
    store: new Ext.data.SimpleStore({
        fields: ['display', 'value'],
        data: [['', '0'], ['hello', '1']]
    }),
    typeAhead: true,
    mode: 'local',
    triggerAction: 'all'
});

Triviális megoldás lehet, hogy nem csinálunk ilyet :), mondjuk úgy, hogy az üres string helyett   -t használunk. (olyan szóköz, ami nem választható el) Editálható ComboBox esetén nem lesz jó, mivel kiválasztásakor megjelenik az input mezőben is a szóköz.

Másik megoldás lehetne, hogy css-ben beállítjuk a minimum magasságot. (azt leszámítva, hogy az IE nem ismeri a minimum magasságot, illetve nem tudhatjuk, hogy pontosan mekkora is az a minimum magasság, tehát ezeket leszámítva teljesen jó megoldás)

Végül megoldható úgy, hogy a lenyiló lista template-jét átszerkesztjük.

Szólj hozzá!

Címkék: combobox template

ComboBox.doQuery

2008.10.17. 09:20 stack

A ComboBox kétféleképpen szűrheti az adatait, helyben azaz kliens oldalon, és távol azaz szerver oldalon. (mode: local, remote) Első előnye, hogy gépelés közben nem kell a szerverre várni az ajánlások miatt, míg másodiknak, hogy először akkor töltődik be az adat, amikor arra valóban szükség van. (oké, ez egy kicsit egyszerűsített összehasonlítás lett...)

Egy apró kiegészítéssel megoldható, hogy a kliens oldali rendezést használva is csak akkor töltsük be az adatokat, amikor arra valóban szükség van. Ezt a szűrést a doQuery függvény végzi, amit az alábbi módon írhatunk felül:

doQuery: function() {
    if ( this.store.lastOptions ) {
        Ext.form.ComboBox.prototype.doQuery.apply(this, arguments);
    } else {
        this.store.load({
            callback: this.doQuery.createDelegate(this, arguments)
        });
    }
}

Ha volt már lekérés, akkor az alapértelmezett doQuery-t kell meghívni, ha nem volt még, akkor a store töltse be az adatokat, majd utána hívja meg ismét a doQuery-t.

5 komment

Címkék: combobox

ExtJS blog, mi ez?

Az ExtJS egy JavaScript keretrendszer, melyet a blog írója elfogultan a legjobbnak tart, és ez a blog olyan apróságok gyűjteménye, melyek ExtJS használata közben felmerültek, eszébe jutottak...

Címkék

ajax (4) alignto (1) állás (3) analytics (1) anchorto (1) android (4) animate (2) array (9) auto (1) back button (1) beautifier (1) beforeevent (1) benchmark (1) blur (1) budapest.js (1) button (1) canvas (1) capture (1) case sensitive (1) center (1) change (1) cikkajánló (1) class (2) closure compiler (1) collapse (1) combobox (3) comment (1) console.log (2) contextmenu (2) core (2) count (1) css (15) csv (1) dataview (1) date (4) datefield (3) datepicker (1) debug (1) doksi (1) dragdrop (1) easing (1) eclipse (1) editor (1) element (5) error (5) eval (2) event (1) fejtörő (1) field (2) fieldset (1) filter (1) firefox (4) firefox extension (2) focus (3) fonts (1) fun (1) function (1) google (2) google chrome (1) grayscale (1) grid (4) group contact (1) header (3) height (2) hidden (1) hirek (2) history (1) htaccess (1) html5 (2) htmleditor (2) https (1) icon (3) id (2) ie (2) ie6 (1) ie9 (1) iframe (3) image (2) indexof (1) javascript (1) jquery (2) jslint (2) jsmin (1) json (7) keymap (1) kipróbálom (2) könyvajánló (2) label (1) layout (1) lint (1) log (1) loop (1) magyar (2) mandelbrot (1) mask (1) math (1) maxlength (1) mistake (1) mysql (5) napi szívás (16) nem extjs (12) node (1) nth child (1) number (1) off (5) offline (1) operator (1) override (20) pagesize (1) paging (2) panel (2) php (7) picker (1) plugin (3) pozicionálás (2) preload (1) print (1) propertygrid (1) pseudo (3) readonly (2) record (1) regexp (1) replace (1) resizable (1) rotate (1) round (1) scale (1) sencha touch (2) server (1) shuffle (1) slider (1) sort (3) sortable (1) store (2) string (7) sum (1) tabchange (1) tabpanel (1) tab key (2) tdd (1) template (1) textarea (2) textfield (1) textitem (1) theme (2) throw (1) timer (1) timestamp (1) title (2) toggle (1) toolbar (6) tools (1) total count (1) transparent (1) tree (1) treenode (1) trigger (1) truncate (1) try (1) ucfirst (1) undefined (2) unique (1) unload (1) urlencode (1) utf8 (2) verzió (1) video (1) viewer (1) viewport (2) visible (2) vtype (1) window (2) xtype (1) zindex (2)

Extjs.blog.hu - RSS

Kérdés?