`

ExtJs3.2.2动态生成CheckboxGroup和Checkbox

阅读更多
      昨天在创建歌曲的时候,需要选择标签,标签是由标签分类来管理的,如男歌手是分类,下面会有华语男歌手,日语男歌手等标签名,设置标签,用复选框形式展现,用户可选择多个标签,由于标签名不是固定的,所以需要动态产生这些复选框。
     创建复选框的方法:
     
// 获取创建复选框
    function getCheckbox(cbBl, cbName, cbId, cbValue) {
        return new Ext.form.Checkbox({
                    boxLabel : cbBl,
                    name : cbName,
                    id : cbId,
                    inputValue : cbValue
                });
    }

    // 获取创建复选框组
    function getCheckboxGroup(cbgFl, cbgId) {
        return new Ext.form.CheckboxGroup({
                    fieldLabel : cbgFl,
                    id : cbgId,
                    columns : 3//分三列,从左到右
                });
    }

    获取标签数据:
  
Ext.Ajax.request({
        url : '',//请求URL 用于请求分类
        method : 'GET',
        success : function(response, options) {
            var labelCatArr = new Array();// 标签分类数组
            var labelCatObj = Ext.util.JSON.decode(response.responseText);
            var labelCatList = labelCatObj.pageList.result;// 全部标签分类
            for (i = 0; i < labelCatList.length; i++) {
                var labelCat = labelCatList[i];// 标签分类
                var cbgLabelCat = getCheckboxGroup(labelCat.labelName,
                        labelCat.id);// 创建复选框组
                labelCatIdArr.push(labelCat.id);
                cbgLabelCat.items = getAllCheckbox(labelCat, cbgLabelCat);
                labelCatArr.push(cbgLabelCat);
            }
            checkboxForm.add(labelCatArr);//只能用add,不能直接对items进行赋值
            checkboxForm.doLayout();//重新调整版面布局

        },
        failure : function(response, options) {

        }
    });

    function getAllCheckbox(labelCat, cbgLabelCat) {
        var labelArr = new Array();
        Ext.Ajax.request({
                    url : "",//请求URL 用于请求标签分类下的标签名
                    method : 'POST',
                    params : {
                        "label.label.id" : labelCat.id
                    },
                    success : function(response, options) {
                        var labelObj = Ext.util.JSON
                                .decode(response.responseText);
                        var labelList = labelObj.pageList.result;// 某标签分类下的标签
                        for (j = 0; j < labelList.length; j++) {
                            var label = labelList[j];
                            labelArr.push(getCheckbox(label.labelName,
                                    labelCat.id, label.id, label.id));
                        }
                        cbgLabelCat.items = labelArr;//可以对items进行直接赋值
                    },
                    failure : function(response, options) {

                    }
                });

        return labelArr;
    }

    有空,欢迎你到红番薯逛逛
2
1
分享到:
评论
1 楼 iceaugust 2014-01-14  
不错,

相关推荐

    ExtJS实现动态读写Checkboxgroup

    总结起来,动态读写ExtJS的CheckboxGroup涉及创建CheckboxGroup、读取选中值、设置选中值以及监听变化。通过结合`ext-basex.js`文件,你可以构建出更复杂的交互式表单和应用程序。记住,始终关注用户需求和体验,...

    EXTJS checkbox赋值

    在EXTJS中,`checkboxgroup` 是一个用于创建一组复选框的组件,通常用于让用户在多个选项中进行多选。 在EXTJS中,`checkboxgroup` 的配置项包括但不限于: 1. `xtype`: 这个属性定义了组件的类型,对于`checkbox...

    Extjs3.0 checkboxGroup 动态添加item实现思路

    Extjs3.0 中的CheckboxGroup默认不能动态添加item。虽然它继承了Ext.form.Field,但是却类似于容器。 CheckboxGroup配置中的items处理生成一个对应的panel,该处理过程只有一次,所以很难对CheckboxGroup进行动态...

    EXTJS动态树支持checkbox 全选

    总结来说,EXTJS动态树支持checkbox全选是一个结合了EXTJS TreePanel组件、数据模型、事件处理和异步加载技术的功能实现,旨在提供用户友好的多选操作。通过这个功能,开发者可以构建出更加交互性强、功能丰富的Web...

    extjs动态生成表格,前台+后台

    动态生成表格是ExtJS中的一个重要功能,它允许开发者根据需求灵活地构造表格结构和数据。 首先,我们需要了解ExtJS中的核心组件之一——GridPanel。GridPanel是一个显示二维数据的组件,通常用于展示大量结构化的...

    ExtJs动态grid的生成

    我们首先从标题"ExtJs动态grid的生成"开始,了解动态生成Grid的基本概念和实现方法。 动态生成Grid意味着在运行时根据需求创建和更新Grid组件,而不是在应用初始化时静态定义。这种灵活性允许开发者更好地响应数据...

    Extjs动态Grid的生成 htm

    Extjs动态Grid的生成 htm

    extjs4.2 动态生成toolbar

    "ExtJS 4.2 动态生成Toolbar" 在 ExtJS 4.2 中实现动态生成 Toolbar,以满足 gridPanel 中动态生成带按钮...使用 ExtJS 4.2 动态生成 Toolbar 需要在视图层、Toolbar.js 和后台调用创建工具栏的方法中进行配置和实现。

    ExtJs4 Checkbox tree

    ExtJs4 Checkbox Tree是基于ExtJs 4框架实现的一种特殊树形组件,它在传统的树形结构基础上增加了复选框功能。这种组件常用于需要用户多选树形数据的场景,比如权限设置、目录选择等。下面将详细介绍ExtJs4 Checkbox...

    extjs动态生成model、store、panel

    extjs动态生成model、store、panel;sql拼接等多种技术难点

    ExtJs代码自动生成

    - `CheckboxGroup`:复选框组,允许用户从多个复选框中选择一项或多项。 - `ComboBox`:下拉列表框,提供一个可展开的选项列表供用户选择。 - `DateField`:时间框,让用户选择日期或时间。 - `HtmlEditor`:富...

    heightChart 与extjs整合 动态生成历史曲线 和实时曲线

    当EXTJS与HeightChart结合时,EXTJS可以提供用户界面和数据管理的基础框架,而HeightChart则负责动态生成曲线图表。这种整合可以实现以下功能: 1. **数据绑定**:EXTJS的数据模型和Store组件可以与HeightChart对接...

    extjs 初始化checkboxgroup值的代码

    代码如下: Ext.override(Ext.form.CheckboxGroup,{ setValueForItem : function(val){ //多个选项值以逗号分开的 val = “,”+val+”,” this.items.each(function(item) { if (val.indexOf(item.inputValue) &gt; -1) ...

    extjs4如何自动生成掌握grid的列显示、隐蔽的checkbox_.docx

    本方案通过编写一个名为`makeCustomMadePanel`的函数,来根据GridPanel的列配置信息动态生成一个包含多个Checkbox的CheckboxGroup。这些Checkbox可用于控制GridPanel中对应列的显示或隐藏。具体实现过程如下: 1. *...

    extjs desktop相关 动态生成开始菜单 多级菜单的快捷方式

    在描述中提到的博客链接指向了一个ITEYE上的技术文章,虽然具体内容未给出,但可以推断作者分享了如何利用ExtJS框架动态生成开始菜单和多级菜单的快捷方式。这通常包括以下几个关键知识点: 1. **ExtJS框架基础**:...

    extjs 实现动态表头

    动态表头是ExtJS中一个高级特性,它允许开发者根据需要在运行时动态地创建和修改表格的列结构。这在处理数据展示和操作时具有很大的灵活性,尤其在数据字段不确定或需要自定义的情况下非常实用。 标题“extjs 实现...

    ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox

    6. 将创建的checkboxfield对象添加到checkboxgroup的items数组中,从而实现动态生成checkbox。 7. 将这个checkboxgroup添加到customMadePanel的items中,并将customMadePanel实例化。 需要注意的是,这种实现方式...

    ext-3.2.2.zip

    同时,它偏好使用JSON(JavaScript Object Notation)作为数据格式,因为JSON更易于解析和生成,且传输效率较高。 6. **主题与皮肤**: ExtJS 3.2.2 提供了多种预设的主题和皮肤,可以改变应用的整体外观,满足...

    extjs界面生成器extjs界面生成器extjs界面生成器

    extjs界面生成器extjs界面生成器extjs界面生成器extjs界面生成器extjs界面生成器

Global site tag (gtag.js) - Google Analytics