My.UI.CheckboxGroup=Ext.extend(Ext.form.CheckboxGroup,{
columns:3,
dataUrl:'', //数据地址
labelFiled:'label',
valueFiled:'value',
setValue:function(val){
if(val.split){
val=val.split(',');
}
this.reset();
for(var i=0;i<val.length;i++){
this.items.each(function(c){
//debugger;
if(c.inputValue==val[i]){
c.setValue(true);
}
});
}
},
reset:function(){
this.items.each(function(c){
c.setValue(false);
});
},
getValue:function(){
var val=[];
this.items.each(function(c){
if(c.getValue()==true)
val.push(c.inputValue);
});
return val.join(',');
},
onRender:function(ct, position){
var items=[];
if(!this.items){ //如果没有指定就从URL获取
JetCom.Ajax.request({
url:this.dataUrl,
scope:this,
sync:true, //同步请求,需要添加扩展插件 http://hi.baidu.com/kaka888/blog/item/4687ccea21333adbd439c953.html
onSuccess:function(data){
for(var i=0;i<data.length;i++){
var d=data[i];
var chk = {boxLabel: d[this.labelFiled], name: this.name||'', inputValue: d[this.valueFiled]};
items.push(chk);
}
}
});
this.items=items;
}
My.UI.CheckboxGroup.superclass.onRender.call(this, ct, position);
}
});
Ext.reg('mycheckgroup',My.UI.CheckboxGroup);
调用
var cc=new My.UI.CheckboxGroup({
fieldLabel: 'Auto Layout',
name: 'cb-custwidth',
dataUrl:'data.json'
});
var chk=new Ext.FormPanel({
renderTo:'form',
frame:true,
items:[
cc
]});
cc.setValue('2,4,5');//设值
//这样重写setValue() getValue()更好
Ext.override(Ext.form.CheckboxGroup,{
//在inputValue中找到定义的内容后,设置到items里的各个checkbox中
setValue : function(value){
this.items.each(function(f){
if(value.indexOf(f.inputValue) != -1){
f.setValue(true);
}else{
f.setValue(false);
}
});
},
//以value1,value2的形式拼接group内的值
getValue : function(){
var re = "";
this.items.each(function(f){
if(f.getValue() == true){
re += f.inputValue + ",";
}
});
return re.substr(0,re.length - 1);
},
//在Field类中定义的getName方法不符合CheckBoxGroup中默认的定义,因此需要重写该方法使其可以被BasicForm找到
getName : function(){
return this.name;
}
});
分享到:
相关推荐
本篇将详细探讨`checkBoxGroup`的使用方法及其取值方式,这对于创建复杂的表单和数据选择功能至关重要。 `Ext JS`中的`checkBoxGroup`是一个方便的组件,它允许用户在一个组内多选或单选复选框。`checkBoxGroup`常...
Ext_Net_CheckboxGroup 勾选、全选、反选和限制勾选
重写 代码如下: //解决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(...
动态读写Checkboxgroup涉及了对用户交互的响应以及数据的实时更新,这对于创建交互性强、用户友好的界面至关重要。下面将详细讲解如何实现这一功能。 首先,我们需要了解CheckboxGroup的基本结构。CheckboxGroup由...
如需要数据动态创建,试着创建整个CheckboxGroup,而不是动态添加item。 代码如下: var unitColumns=[]; for(var i = 0;i < records.length;i++){ unitColumns.push({ boxLabel: records[i].data.A11, n
EXTjs2 的treeNode 带有checkbox,可是API中,关于checkbox的事件就只有一个checkchange事件,所以写个方法传上来。
WPF在MVVM模式下通过Converter控制不同CheckBox对应不同枚举类型勾选,比如我现在描述一个人有八种行为,这八种行为分别通过8个CheckBox来标识,如果存在这种行为则勾选,不存在则不勾选
如果需要一组互斥的复选框,可以使用`Ext.container.CheckboxGroup`,它允许用户从一组选项中选择一个。配置`columns`属性可以设置每行显示的复选框数量。 8. **响应式设计** 在移动设备上,复选框的布局可能需要...
在JavaScript编程中,`CheckBoxGroup.js` 是一个用于管理复选框组的类,它提供了一种方便的方式来处理多个复选框之间的交互和数据管理。这个类通常用于创建用户界面,其中用户可以从多个选项中选择一个或多个。下面...
代码如下: Ext.override(Ext.form.CheckboxGroup,{ setValueForItem : function(val){ //多个选项值以逗号分开的 val = “,”+val+”,” this.items.each(function(item) { if (val.indexOf(item.inputValue) > -1) ...
同时,如果数据源需要动态更新(例如,从服务器获取或保存用户选择),则需要正确处理这些操作,避免状态的混乱,也就是避免“Array Collision”。 在实际应用中,`TreeCheckBox`的数据源管理可能涉及以下几点: 1...
- 服务器端代码可能处理数据源,如填充TreePanel的节点数据,并可能与CheckBoxModel的配置交互。 5. **实际应用**: - 在权限管理中,可以使用这样的TreePanel来让用户选择不同的权限角色或功能。 - 文件管理...
在本文中,我们将探讨如何在C#中动态生成和获取CheckBox控件的值,主要关注两种不同的实现方式。 **方法一:服务器容器控件中添加子控件** 在ASP.NET中,我们可以利用服务器端控件来动态创建CheckBox。这种方式的...
你可以创建一个名为`CustomCheckBoxGroup`的类,继承自`CheckboxGroup`,并在此基础上添加新特性,如事件监听、数据绑定或状态管理。同时,可以利用Java的面向对象特性,如封装和继承,确保代码的模块化和重用性。 ...
CheckboxGroup还支持互斥选择,即在同一组内的Checkbox只能选择一个,这可以通过设置互斥属性来实现。 在压缩包文件"TJTestV3"中,可能包含了使用这些技术的示例代码或者项目资源。这个测试项目可能是一个包含HTML...
在EXT JS中,树形组件(Tree Panel)常用于展现层级结构的数据,而扩展CHECKBOX功能则允许用户对树节点进行多选操作。 在EXT JS的Tree Panel中,要实现复选框功能,我们需要自定义UI Provider。UI Provider是EXT JS...
7. `items`: 这是一个数组,包含了每个复选框的配置,每个配置项包括`boxLabel`(复选框显示的文本)、`name`(与`checkboxgroup`相同的name,用于数据绑定)和`inputValue`(当复选框被选中时,对应的值)。...