昨天在创建歌曲的时候,需要选择标签,标签是由标签分类来管理的,如男歌手是分类,下面会有华语男歌手,日语男歌手等标签名,设置标签,用复选框形式展现,用户可选择多个标签,由于标签名不是固定的,所以需要动态产生这些复选框。
创建复选框的方法:
// 获取创建复选框
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;
}
有空,欢迎你到
红番薯逛逛
分享到:
相关推荐
总结起来,动态读写ExtJS的CheckboxGroup涉及创建CheckboxGroup、读取选中值、设置选中值以及监听变化。通过结合`ext-basex.js`文件,你可以构建出更复杂的交互式表单和应用程序。记住,始终关注用户需求和体验,...
在EXTJS中,`checkboxgroup` 是一个用于创建一组复选框的组件,通常用于让用户在多个选项中进行多选。 在EXTJS中,`checkboxgroup` 的配置项包括但不限于: 1. `xtype`: 这个属性定义了组件的类型,对于`checkbox...
Extjs3.0 中的CheckboxGroup默认不能动态添加item。虽然它继承了Ext.form.Field,但是却类似于容器。 CheckboxGroup配置中的items处理生成一个对应的panel,该处理过程只有一次,所以很难对CheckboxGroup进行动态...
总结来说,EXTJS动态树支持checkbox全选是一个结合了EXTJS TreePanel组件、数据模型、事件处理和异步加载技术的功能实现,旨在提供用户友好的多选操作。通过这个功能,开发者可以构建出更加交互性强、功能丰富的Web...
动态生成表格是ExtJS中的一个重要功能,它允许开发者根据需求灵活地构造表格结构和数据。 首先,我们需要了解ExtJS中的核心组件之一——GridPanel。GridPanel是一个显示二维数据的组件,通常用于展示大量结构化的...
我们首先从标题"ExtJs动态grid的生成"开始,了解动态生成Grid的基本概念和实现方法。 动态生成Grid意味着在运行时根据需求创建和更新Grid组件,而不是在应用初始化时静态定义。这种灵活性允许开发者更好地响应数据...
Extjs动态Grid的生成 htm
"ExtJS 4.2 动态生成Toolbar" 在 ExtJS 4.2 中实现动态生成 Toolbar,以满足 gridPanel 中动态生成带按钮...使用 ExtJS 4.2 动态生成 Toolbar 需要在视图层、Toolbar.js 和后台调用创建工具栏的方法中进行配置和实现。
ExtJs4 Checkbox Tree是基于ExtJs 4框架实现的一种特殊树形组件,它在传统的树形结构基础上增加了复选框功能。这种组件常用于需要用户多选树形数据的场景,比如权限设置、目录选择等。下面将详细介绍ExtJs4 Checkbox...
extjs动态生成model、store、panel;sql拼接等多种技术难点
- `CheckboxGroup`:复选框组,允许用户从多个复选框中选择一项或多项。 - `ComboBox`:下拉列表框,提供一个可展开的选项列表供用户选择。 - `DateField`:时间框,让用户选择日期或时间。 - `HtmlEditor`:富...
当EXTJS与HeightChart结合时,EXTJS可以提供用户界面和数据管理的基础框架,而HeightChart则负责动态生成曲线图表。这种整合可以实现以下功能: 1. **数据绑定**:EXTJS的数据模型和Store组件可以与HeightChart对接...
代码如下: Ext.override(Ext.form.CheckboxGroup,{ setValueForItem : function(val){ //多个选项值以逗号分开的 val = “,”+val+”,” this.items.each(function(item) { if (val.indexOf(item.inputValue) > -1) ...
本方案通过编写一个名为`makeCustomMadePanel`的函数,来根据GridPanel的列配置信息动态生成一个包含多个Checkbox的CheckboxGroup。这些Checkbox可用于控制GridPanel中对应列的显示或隐藏。具体实现过程如下: 1. *...
在描述中提到的博客链接指向了一个ITEYE上的技术文章,虽然具体内容未给出,但可以推断作者分享了如何利用ExtJS框架动态生成开始菜单和多级菜单的快捷方式。这通常包括以下几个关键知识点: 1. **ExtJS框架基础**:...
动态表头是ExtJS中一个高级特性,它允许开发者根据需要在运行时动态地创建和修改表格的列结构。这在处理数据展示和操作时具有很大的灵活性,尤其在数据字段不确定或需要自定义的情况下非常实用。 标题“extjs 实现...
6. 将创建的checkboxfield对象添加到checkboxgroup的items数组中,从而实现动态生成checkbox。 7. 将这个checkboxgroup添加到customMadePanel的items中,并将customMadePanel实例化。 需要注意的是,这种实现方式...
同时,它偏好使用JSON(JavaScript Object Notation)作为数据格式,因为JSON更易于解析和生成,且传输效率较高。 6. **主题与皮肤**: ExtJS 3.2.2 提供了多种预设的主题和皮肤,可以改变应用的整体外观,满足...
extjs界面生成器extjs界面生成器extjs界面生成器extjs界面生成器extjs界面生成器