做一个权限分配页面,
要求做成复选框,EXTJS怎样实现动态添加 Checkbox,譬如从后台数据库权限表中读出多少个权限,在前台就显示多少个,再有如何才能和数据库中的表绑定,进行权限添加呀!请高人们指点迷津! 

解决方案 »

  1.   

    给你参考个我的代码,我是用来动态插入input的,你可以类似的做
    var Items_Add = function()
    {
    Model_Add.formPanel.add(Model_Items);
    Model_Add.window.render();
    }
    var Model_Items = {
                layout:'column',
                items:[{
                    columnWidth:.3,
                    layout: 'form',
                    items: [{
    fieldLabel:"标示",//文本框标题
    xtype:"textfield",//表单文本框
    name:"names[]",
    blankText:'不能为空',
    allowBlank:false,
    width:100
    }]
                },{
                    columnWidth:.3,
                    layout: 'form',
                    items: [{
    fieldLabel:"字段名",//文本框标题
    xtype:"textfield",//表单文本框
    name:"params[]",
    blankText:'不能为空',
    allowBlank:false,
    width:100
    }]
                },{
                    columnWidth:.3,
                    layout: 'form',
                    items: [{
    fieldLabel:"输入类型",//文本框标题
    xtype:"textfield",//表单文本框
    name:"types[]",
    emptyText:'例如:textfiled,textarea,timefield',
    blankText:'不能为空',
    allowBlank:false,
    width:100
     }]
                }]
            };
      

  2.   

    JSP:<script>
    // 假设权限放在list数组中
    <% for(int i=0;i<list.size();i++){ %>
        new Ext.form.Checkbox({
    renderTo : 'chk',
    width : 200,
    checked : false
    });
    <% } %>
    </script>
      

  3.   

    补充下根据数据库有多少个就循环出多少个
    Model_Edit.formPanel = new Ext.form.FormPanel
    ({
    id:'Model_Edit.formPanel',
            frame:true,
            width: 750 
    });
    forEach(ModelJson,function(value, key){
    Model_Edit.formPanel.add({
                layout:'column',
                items:[{
                    columnWidth:.3,
                    layout: 'form',
                    items: [{
    fieldLabel:"标示",//文本框标题
    xtype:"textfield",//表单文本框
    name:"names[]",
    value:value.name,
    blankText:'不能为空',
    allowBlank:false,
    width:100
    }]
                },{
                    columnWidth:.3,
                    layout: 'form',
                    items: [{
    fieldLabel:"字段名",//文本框标题
    xtype:"textfield",//表单文本框
    name:"params[]",
    value:key,
    blankText:'不能为空',
    allowBlank:false,
    width:100
    }]
                },{
                    columnWidth:.3,
                    layout: 'form',
                    items: [{
    fieldLabel:"输入类型",//文本框标题
    xtype:"textfield",//表单文本框
    name:"types[]",
    emptyText:'例如:textfiled,textarea,timefield',
    blankText:'不能为空',
    value:value.type,
    allowBlank:false,
    width:100
     }]
                }]
            })

    })
      

  4.   

    老大,我要的不是输入文本框,是复选框的,文本输入的我会做,就是没有遇到过这种复选的,还要数据库有多少权限,就出多少选项,我是晕这块呀!
       var individual = [{
            bodyStyle: 'padding-right:5px;',
            items: {
                xtype: 'fieldset',
                title: '角色设置',
                autoHeight: true,
                defaultType: 'checkbox', // each item will be a checkbox
                items: [{
                    xtype: 'field',
                    name: 'YHMC',
                    fieldLabel: '用户名称'
                }, {
                    fieldLabel: '用户角色',
                    boxLabel: '管理员',
                    name: 'ADMIN'
                }, {
                    fieldLabel: '',
                    labelSeparator: '',
                    boxLabel: '审批',
                    name: 'APPROVE'
                }, {
                    checked: false,
                    fieldLabel: '',
                    labelSeparator: '',
                    boxLabel: '编辑',
                    name: 'EDIT'
                }, {
                    checked: false,
                    fieldLabel: '',
                    labelSeparator: '',
                    boxLabel: '浏览',
                    name: 'BROSE'
                }]
            },
    这是写死的,我想要个动态的。
      

  5.   


    Ext.Ajax.request({
                url: 'Default3.aspx',
                success: function(response, opts) {                items = eval(response.responseText);
                    createWin(items);
                },
                failure: function(response, opts) {            }
            });        function createWin(items) {
                var win = new Ext.Window({
                    width: 640,
                    height: 480,
                    items:
                    {
                        xtype: 'checkboxgroup',
                        fieldLabel: 'Auto Layout',
                        items: items
                    }            })
                win.show();
            }
    后台方法,具体的发送的字符串你可以自己根据dataset去拼接Response.Clear();
            string s = "[{boxLabel: 'Item 1', name: 'cb-auto-1'},{boxLabel: 'Item 2', name: 'cb-auto-2', checked: true},{boxLabel: 'Item 3', name: 'cb-auto-3', checked: true}]";
            Response.Write(s);
            Response.End();
      

  6.   

    有解决吗
    我也要用EXTJS写权限方面的东西,动态生成checkbox 能否传授一点经验..