日期:2014-05-16  浏览次数:20397 次

EXTJS中动态添加checkbox
高手帮帮忙: EXTJS怎样实现动态添加 Checkbox,譬如从后台读出多少个省份,在前台就显示多少个 Checkbox,最好能放到 CheckboxGroup中

------解决方案--------------------
把所有省份都列出来,只控制它们的display属性就是了.
------解决方案--------------------
下面的代码是我在 filedset 里面动态的从后台 url 中读取出权限,生成 checkbox 并填充到 filedset 中

JScript code

// 动态在 fieldset 中添加 checkbox(用户权限)
        function addUserModule(){
            var size = storeUserRole.getTotalCount();
            
            // 获得 fieldset
            var fieldset = Ext.getCmp("userRoleFieldset");

            for(var i=0;i<size;i++){
                var moduleId = storeUserRole.getAt(i).data.moduleId;
                var moduleName = storeUserRole.getAt(i).data.moduleName;
                
                var checkboxModule = new Ext.form.Checkbox({    
                    id:"addboxModule"+i,                
                    name:"userModule",
                    boxLabel : moduleName,  
                                    labelSeparator:"",  // 当没有标题时,不要 “:” 号,不要标题分隔                    
                                               inputValue : moduleId
                }); 
                
                if(moduleName == "用户管理"){
                    // 因为只有管理员才有“用户管理的权限”,所以一般封掉“用户管理”权限的选项
                    roleBoxIndex1 = i;
                    Ext.getCmp("addboxModule"+i).setDisabled(true);
                }
                
                fieldset.add(checkboxModule); // 这里我是一个 fieldset ,你也可以是一个 form 或者别的东西。
            }                        
        }

------解决方案--------------------
没贴完

 下面是 store 的代码:
JScript code

var storeUserRole=new Ext.data.JsonStore({
                autoLoad : true,
                 url: "<%=path%>/userManage.do?action=findAllModule",
                  fields: [  'moduleId','moduleName']
          });