在开发中遇到两种情况:第一在新增窗体时,要动态加载CheckBox项;第二在修改时不但需要加载所有CheckBox项,还要并且选中之前新增时的选项

如图这是在修改页面的效果:

1.在新增窗体中动态加载checkboxgroup

1.1在新增窗体代码片段:

   {
xtype: 'panel',
width: 750,
border: false,
flex: 2,
items: [{
xtype: 'checkboxgroup',
id: 'lblOperationBehavior',
name: 'lblOperationBehavior',
itemCls: 'x-check-group-alt',
columns: 4,
fieldLabel: '设定权限',
labelWidth: 100,
width: 750,
align: 'left',
border: true,
anchor: '100%', flex: 1,
listeners: {
render: function (view, opt) {
LoadingOperationBehavior();
}
}
}]
},

1.2方法LoadingOperationBehavior()

//加载操作全部名称
function LoadingOperationBehavior() {
//通过extjs的ajax获取操作全部名称
Ext.Ajax.request({
url: '/ProjectWeb/HttpHandlerData/MemberManagement/MemberManagement.ashx?operation=SearchOperationBehavior',
success: function (response) {
var obj = eval("(" + response.responseText + ")");
var len = obj.data.length;//obj.data.length; "Table"这里的Table指的是后台返回 类似于data
if (obj.data == null || len == 0) {
return;
} var checkboxgroup = Ext.getCmp("lblOperationBehavior");
for (var i = 0; i < len; i++) {
var checkbox = new Ext.form.Checkbox(
{
boxLabel: obj.data[i].OperationName,//obj.Table[i].Title; "Title"指的是返回的名字
name: obj.data[i].OperationCode,
inputValue: obj.data[i].OpeartionBehaviorId,
checked: false
});
checkboxgroup.items.add(checkbox);
}
OperationDefineForm.doLayout(); //重新调整版面布局
}
});
}

2.在修改页面窗体,加载所有CheckBox项,并选中相关项

2.1在修改页面窗体代码片段

  {
xtype: 'panel',
width: 750,
border: false,
flex: 3,
items: [{
xtype: 'checkboxgroup',
id: 'lblOperationBehavior_Update',
name: 'lblOperationBehavior_Update',
columns: 4,
fieldLabel: '设定权限',
labelWidth: 100,
width: 750,
align: 'left',
border: true,
anchor: '100%', flex: 1,
listeners: {
render: function (view, opt) {
LoadingOperationBehavior_Update();
}
}
}]
},

2.2 LoadingOperationBehavior_Update();

//加载操作全部名称
//说明:LoadingOperationBehavior_Update中有两个Ajax请求;第一个是获取全部的CheckBox;第二个获取的是选中的CheckBox
function LoadingOperationBehavior_Update() { Ext.Ajax.request({//第一个Ajax
url: '/ProjectWeb/HttpHandlerData/MemberManagement/MemberManagement.ashx?operation=SearchOperationBehavior',
params: {
start: start,
limit: limit,
page: '1'
},
success: function (response) {
var cbgObj = eval("(" + response.responseText + ")");
var cbgLen = cbgObj.data.length;//obj.data.length; "Table"这里的Table指的是后台返回 类似于data
if (cbgObj.data == null || cbgLen == 0) {
return;
}
var checkboxgroup = OperationDefineForm_Update.getForm().findField('lblOperationBehavior_Update');
var checkbox;
var strInIds = "";//定义临时变量,判断是否已经存在并选中
Ext.Ajax.request({//第二个Ajax
url: '/ProjectWeb/HttpHandlerData/MemberManagement/MemberManagement.ashx?operation=SearchOperationBehaviorTOP',
success: function (response) {
var obj = eval("(" + response.responseText + ")");
var len = obj.data.length;//obj.data.length; "Table"这里的Table指的是后台返回 类似于data
if (obj.data == null || len == 0) {
return;
}
for (var i = 0; i < cbgLen; i++) {
for (var j = 0; j < len; j++) {
if (cbgObj.data[i].OpeartionBehaviorId == obj.data[j].OpeartionBehaviorId) {//如果两个ID对比相等的话就是代表这个选项已呗选中
strInIds += cbgObj.data[i].OpeartionBehaviorId;
checkbox = new Ext.form.Checkbox(
{
boxLabel: obj.data[j].OperationName,//obj.Table[i].Title; "Title"指的是返回的名字
name: obj.data[j].OperationCode,
inputValue: obj.data[j].OpeartionBehaviorId,
checked: true
});
}
else {//不相等,不选
if (strInIds.indexOf(cbgObj.data[i].OpeartionBehaviorId) < 0) {
checkbox = new Ext.form.Checkbox(
{
boxLabel: cbgObj.data[i].OperationName,//obj.Table[i].Title; "Title"指的是返回的名字
name: cbgObj.data[i].OperationCode,
inputValue: cbgObj.data[i].OpeartionBehaviorId,
checked: false
});
}
}
}
checkboxgroup.items.add(checkbox);
}
OperationDefineForm_Update.doLayout(); //重新调整版面布局
}
});
}
}); }

 

EXTJS 4.2 资料 控件之checkboxgroup的用法(动态数据)的更多相关文章

  1. EXTJS 4.2 资料 控件之checkboxgroup的用法(静态数据)

    1.页面 1.1点击‘横幅’,需要动态显示隐藏文本框 { xtype: 'fieldset', title: '指定附加图&横幅设置', collapsible: true, items: [ ...

  2. EXTJS 4.2 资料 控件之radiogroup 的用法

    最近在EXTJS4.2开发项目,radiogroup的用法,主要是和grid之间的编辑功能:看了好多资料都不对,特此在这里备注记录 代码如下, 1.这是一段Win窗体上的两个单选按钮,设置单选按钮都是 ...

  3. EXTJS 3.0 资料 控件之 html 潜入label用法

    这是在Extjs 中插入html 控件label! html: "<div><label id='howMany'>您共选中了</label><br ...

  4. EXTJS 3.0 资料 控件之 combo 用法

    EXTJS combo 控件: 1.先定义store //年款 var comboData_ReleasYear = [ ['], ['], ['], ['] ]; 2.定义combo控件 { lay ...

  5. EXTJS 4.2 资料 控件之combo 联动

    写两个数据源: 1.IM_ST_Module.js { success:true, data:[ { ModuleId: '1', ModuleName: '资讯' } , { ModuleId: ' ...

  6. EXTJS 4.2 资料 控件textfield中fieldLabel去掉冒号,控件label的长度

    代码: labelSeparator: '', // 去掉laebl中的冒号 labelWidth: 10,//控件label的长度

  7. EXTJS 4.2 资料 控件之Grid 那些事

    最近在学习Extjs4.2 ,积累文章,看得不错,再此留年: //表格数据最起码有列.数据.转换原始数据这3项 Ext.onReady(function(){ //定义列 var columns = ...

  8. EXTJS 4.2 资料 控件之Window窗体自动填充页面

    1.html页面代码: <div id="component" style="width:100%;height:100%"> <body&g ...

  9. EXTJS 4.2 资料 控件之Grid Columns 列renderer 绑定事件

    columns: [ { header: '序号', xtype: 'rownumberer', align: 'center', width: 100 }, { header: 'CompanyId ...

随机推荐

  1. Linux下文件的三个时间(Atime,Mtime,Ctime)

    文件的三个时间 我们已经很熟悉windows系统了,那么我们在windows下新建一个文件,我们知道它在保存的时候肯定是会保存一下文件的创建时间之类的信息的,那么我们来看看windows下的一个文件保 ...

  2. [改善Java代码]若有必要,使用变长数组

    Java中的数组是定长的,一旦经过初始化声明就不可改变长度,这在实际使用的时候非常不方便.比如要对一个班级的学生信息进行统计,因为我们不知道班级会有多少个学生(随时可能有退学,入学,转学),所以需要一 ...

  3. 关于JDK中的集合总结(二)

    1.2版本的JDK才出现的java集合框架. 下面介绍说一下Vector的一些特点. import java.util.Enumeration; import java.util.Iterator; ...

  4. ListView使用自定义适配器的情况下实现适配器的控件点击事件执行Activity界面中的方法

    如果ListView使用的是自定义的适配器,比如MyArrayAdapter extends ArrayAdapter<String> 那么,如何实现适配器中的点击事件执行activity ...

  5. 关于servlet与jsp&java类传值问题

    为了实现单击左侧导航栏,动态改变右侧(一个jsp文件)的内容,需要改变变量var的值,进而实现改变default部分内容的目的(自己想的方法,因为实在是layman.应该有简便快捷的方法,可我不知道. ...

  6. 【AngularJs】---实现select的ng-options

    controller .controller('MainController', function($scope, $http, $ionicModal, $timeout) { var post = ...

  7. HTTP相关知识 --转载

    转载之,言简意赅

  8. web工程中URL地址的写法

    在开发中我们不可避免的要碰到许多需要写URL地址的情况,这常常让我们感到头疼.下面笔者推荐一种简单的做法.URL地址分为绝对路径和相对路径两种.相对路径又分为相对资源路径和相对根路径.显然绝对路径在开 ...

  9. Cocos2d-x手机游戏开发中-组合动作

    动作往往不是单一,而是复杂的组合.我们可以按照一定的次序将上述基本动作组合起来,形成连贯的一套组合动作.组合动作包括以下几类:顺序.并列.有限次数重复.无限次数重复.反动作和动画.动画我们会在下一节介 ...

  10. MSSQL 数字钱转化为大写

    --说明: --1.本函数范围从 毫 ~ 兆 --2.有四种精度(元,角 ,分,厘 ,毫) --3.有三种进位规则(四舍五入,接舍去,非0就入) --参数说明:dbo.MoneyToCapital( ...