最近新学ext,被checkBoxGroup 的动态添加删除搞的痛不欲生,在不停的尝试之后终于搞定了~
从后台拿数据再用ajax稍微改造下就可以了。
效果图:
test.js
function checkAll(groupId){
var group = Ext.getCmp(groupId);
var length = group.items.getCount();
var isCheck=group.items.items[0].checked;
for(var i=1;i<length;i++){
if(isCheck)
group.items.items[i].setValue(true);
else
group.items.items[i].setValue(false);
}
//alert(group.getValue());
}
Ext.onReady(function(){
var myGroup = new Ext.form.CheckboxGroup({
id:'myGroup',
xtype: 'checkboxgroup',
fieldLabel: 'Single Column',
// Put all controls in a single column with width 100%
columns: 4,
items: [
{boxLabel: '全选', name: 'cb-col-0',id:'c0',listeners:{
check:function(){
checkAll('myGroup');
}
}},
{boxLabel: 'Item 1', name: 'cb-col-1',id:'c1'},
{boxLabel: 'Item 2', name: 'cb-col-2',id:'c2', checked: true},
{boxLabel: 'Item 3', name: 'cb-col-3',id:'c3'}
]
});
var button = new Ext.Button({
text: 'add'
,handler: function(){
var length = myGroup.items.getCount();
var col = myGroup.panel.items.get(myGroup.items.getCount()%myGroup.panel.items.getCount());
var newItem = new Ext.form.Checkbox(
{
boxLabel: 'Item '+length,
name: 'cb-col',
listeners:{
check:function(){
if(this.checked)
alert(this.id);
}
}});
col.add(newItem);
myGroup.items.add(newItem);
myGroup.panel.doLayout();
}
});
var button_r = new Ext.Button({
text: 'remove'
,handler: function(){
var items = myGroup.items;
var length = items.getCount();
var lastItems = myGroup.items.items[length-1];
lastItems.destroy();
myGroup.items.remove(lastItems.id);
myGroup.items.remove(lastItems);
}
});
var form = new Ext.form.FormPanel({
border:false,
labelAlign:"right",
buttonAlign:'center',
labelWidth:150,
frame:true,
baseParams : {create : true }
});
form.add(myGroup);
form.add(button);
form.add(button_r);
form.render('form');
});
test.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<link rel="stylesheet" type="text/css" href="../extjs/resources/css/ext-all.css" />
<script src="../extjs/adapter/ext/ext-base.js" type="text/javascript" charset="utf-8"></script>
<script src="../extjs/ext-all-debug.js" type="text/javascript" charset="utf-8"></script>
<script src="test.js" type="text/javascript" charset="utf-8"></script>
<head >
<title >测试
</title>
</head>
<body >
<div id="form"></div>
</body>
</html>
分享到:
相关推荐
Extjs3.0 中的CheckboxGroup默认不能动态添加item。虽然它继承了Ext.form.Field,但是却类似于容器。 CheckboxGroup配置中的items处理生成一个对应的panel,该处理过程只有一次,所以很难对CheckboxGroup进行动态...
NULL 博文链接:https://stevelee.iteye.com/blog/1328992
ExtJs4 Checkbox tree
checkboxgroup中修改时赋值是最难解决的,要改写方法才能实现
可以动态的新增和删除Ext控件,这里支持的上传控件的新增和删除。
NULL 博文链接:https://fxiaozj.iteye.com/blog/1174901
在网上下载别人的代码,改进加上CHECKBOX ,但是批量删除做不出来,希望高手完成并分享。
Extjs checkboxgrop动态获取后台数据,并默认为全选状态
代码如下: Ext.override(Ext.form.CheckboxGroup,{ setValueForItem : function(val){ //多个选项值以逗号分开的 val = “,”+val+”,” this.items.each(function(item) { if (val.indexOf(item.inputValue) > -1) ...
checkbox tree extjs2checkbox tree extjs2checkbox tree extjs2checkbox tree extjs2
extjs4动态添加表头字段、删除、增加记录!
Ext grid 动态添加字段、列扩展, 如何动态添加或者删除一个grid的列
extjs4.2 分页combo动态条数 源码,不懂的加群
extjs动态添加tabpanel标签页支持pannel嵌入 逻辑代码在 MyWindow.js里面直接调用 方法 就可以
NULL 博文链接:https://627443183-qq-com.iteye.com/blog/1725391
关于ExtJS的工具栏动态添加按钮(从后台数据库读取信息)
重写 代码如下: //解决checkboxgroup回填数据问题 Ext.override(Ext.form.BasicForm,{ findField : function(id){ var field = this.items.get(id); if(!field){ this.items.each(function(f){ if(f.isXType(...
extjs动态生成表格,前台+后台extjs动态生成表格,前台+后台extjs动态生成表格,前台+后台extjs动态生成表格,前台+后台extjs动态生成表格,前台+后台extjs动态生成表格,前台+后台
NULL 博文链接:https://shp808.iteye.com/blog/1264633