• 【翻译】从Store生成Checkbox Group


    原文:Ext JS: Generating a Checkbox Group from a Store

    Ext JS的checkbox group可以用来将复选框组合成一个单一的逻辑字段。由于复选框时不时需要动态的从Store中生成,因而,如果将store绑定到扩展类,就最好不过了。以下是第一次尝试:

    Ext.define('Ext.ux.CheckboxStoreGroup', {
        extend: 'Ext.form.CheckboxGroup',
        alias: 'widget.checkboxstoregroup',
        config: {
            store: null,
            labelField: 'label',
            valueField: 'id',
            checkedField: 'checked',
            columns: 3,
            boxFieldName: 'mycheckbox'
        },
        applyStore: function(store) {
            if (Ext.isString(store)) {
                return Ext.getStore(store);
            } else {
                return store;
            }
        },
        updateStore: function(newStore, oldStore) {
            if (oldStore) {
                store.removeEventListener('datachanged', this.onStoreChange, this)
            }
            newStore.on('datachanged', this.onStoreChange, this);
        },
        onStoreChange: function(s) {
    
            Ext.suspendLayouts();
            this.removeAll();
    
            var vField = this.getValueField();
            var lField = this.getLabelField();
            var cField = this.getCheckedField();
            var fName = this.getBoxFieldName();
            var rec = null;
    
            for (var i=0; i<s.getCount(); i++) {
                rec = s.getAt(i);
    
                this.add({
                    xtype: 'checkbox',
                    inputValue: rec.get(vField),
                    boxLabel: rec.get(lField),
                    checked: rec.get(cField),
                    name: fName
                });
            }
    
            Ext.resumeLayouts(true);
    
        }, 
        initComponent: function() {
            this.callParent(arguments);
            this.on('afterrender', this.onAfterRender);
        },
        onAfterRender: function() {   
            if (this.getStore().totalCount) {
                this.onStoreChange(this.getStore);
            }
        }
    });

    测试地址:
    https://fiddle.sencha.com/#fiddle/i51

  • 相关阅读:
    实验二
    个人简介及对未来的想法
    读《构建之法》心得体会
    作业2
    个人简介
    第六次作业
    第二次作业
    个人简历
    购物系统测试缺陷报告
    读《构建之法》心得体会
  • 原文地址:https://www.cnblogs.com/muyuge/p/6333639.html
Copyright © 2020-2023  润新知