Showing posts with label JsonStore. Show all posts
Showing posts with label JsonStore. Show all posts

Sunday, August 11, 2013

ExtJS add checkbox group to a panel on fly

/* Add a panel to parent panel as item */
{
    xtype: 'panel',
    id: "paymentMethod",
    fieldLabel: 'Preferred Payment Method'
}

/* Bind 'load' event on store that loads data as JSON */
var paymentstore = new Ext.data.JsonStore({
    proxy: new Ext.data.HttpProxy({
        url: Ext.SERVER_URL + 'get_data',
        method: 'post'
    }),
    listeners :{
        load:function() {
            var testArray = new Array();
            for(var i=0; i<records.length; i++) {
                testArray.push({

                    id: "some_id_" + records[i].data.id,
                    checked: true, /* or false */
                    name: "payment_method[" + records[i].data.id + "]",
                    boxLabel: records[i].data.name,
                    listeners:{
                        check:function (clickedObject, isChecked){
                            console.log(
clickedObject);
                            console.log(
isChecked);
                            console.log("Check box check status changed.");

                            var group = Ext.getCmp ("payment_group");
                            var length = group.items.getCount ();
                            var isCheck = group.items.items [0]. checked;
                        }
                    }
                });
            }
            var myCheckboxgroup = new Ext.form.CheckboxGroup({
                id:'payment_group',
                fieldLabel: 'Checkboxes',
                boxLabel:'State',

                columns: 1,
                items:testArray //created in previous snippet.
            });
            Ext.getCmp("paymentMethod").add(myCheckboxgroup);

            Ext.getCmp("paymentMethod").doLayout();
        }
    },
    fields: ['id',  'name', "description"],
    totalProperty: 'totalCount',
    root: 'data'
});

/* Load store */
paymentstore.load({
    params: {
        start: 0
    }
});

Thursday, August 8, 2013

Extjs combobox:How to set user selected value as the default selected value

 /* Date store */
var dataStore = new Ext.data.JsonStore({
    proxy: new Ext.data.HttpProxy({
        url: Ext.SERVER_URL + 'get_data',
        method: 'post'
    }),
    listeners :{
        load:function() {
            /**
            /* The code block at the end labeled
            /* 'And select a value after load store' can be written here.
            */
        }
    },
    fields: ['id',  'name'],
    totalProperty: 'totalCount',
    root: 'data'
});

/* Suppose data returned as */
{totalCount: 2, data:  [{"id":1,"name":"First Item"},{"id":2,"name":"Second Item"}] }

/* Combobox initialize */
{
    xtype: 'combo',
    id: "domId",
    fieldLabel: 'Data Name',
    hiddenName: 'cb_data',
    store: dataStore,
    displayField: 'name',
    labelSeparator :'',
    valueField: 'id',
    typeAhead: true,
    autoSelect: true,
    mode: 'local',
    triggerAction: 'all',
    selectOnFocus: true,
    allowBlank: true,
    blankText: 'Select status',
    editable: false
}

/* And select a value after load store */
var combo = Ext.getCmp("domId");
combo.getStore().on(
    "load",function() {
        var value = 2;
        /* Set your value to select in combobox */
        /* This will select with id = 2 and label = 'Second Item'.
        if(value == 0) { /* Default selection */
            var recordSelected = combo.getStore().getAt(0);
            combo.setValue(recordSelected.get('id'));
        } else {
            combo.setValue(value);
        }
    },
    this,
    {
        single: true
    }
);