原文:[Ext JS: Generating a Checkbox Group from a Store](https://druckit.wordpress.com/2015/02/12/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](https://fiddle.sencha.com/#fiddle/i51)
- 前言
- extjs 4 tree 的text不显示
- 窗口显示时让字段获得焦点
- 如何编写一个使用Store更新复选框的CheckboxGroup的插件
- 如何了解事件中回调函数的参数
- 很多人需要的,带时间的日期选择器
- 一个网上找到的,在Grid中嵌套Grid的示例:Nested Grids Example
- 修改Ext.ux.GroupTabPanel让它支持延迟渲染
- 初学者比较容易犯的布局错误(手风琴布局)
- Ext JS添加子组件的误区
- 使用Ext JS,不要使用页面做组件重用,尽量不要做页面跳转
- 【翻译】十大要避免的Ext JS开发方法
- 一个不错的扩展:Ext.ux.container.ButtonSegment
- 在VS2012中实现Ext JS的智能提示太简单了
- 为什么要使用“var me=this”这样的写法
- 一个很不错的支持Ext JS 4的上传按钮
- 【翻译】热门支持小提示:2013年12月
- 【翻译】在Ext JS应用程序中使用自定义图标
- 演练Ext JS 4.2自定义主题
- 【翻译】培训提示:解决常见编码问题的简单技巧
- 【翻译】从Store生成Checkbox Group
- 【翻译】将Ext JS Grid转换为Excel表格
- 【翻译】Ext JS 5:为不同设备设置不同的主题