昨天在创建歌曲的时候,需要选择标签,标签是由标签分类来管理的,如男歌手是分类,下面会有华语男歌手,日语男歌手等标签名,设置标签,用复选框形式展现,用户可选择多个标签,由于标签名不是固定的,所以需要动态产生这些复选框。
创建复选框的方法:
// 获取创建复选框
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;
}
有空,欢迎你到
红番薯逛逛
分享到:
相关推荐
NULL 博文链接:https://stevelee.iteye.com/blog/1328992
extjs动态生成表格,前台+后台extjs动态生成表格,前台+后台extjs动态生成表格,前台+后台extjs动态生成表格,前台+后台extjs动态生成表格,前台+后台extjs动态生成表格,前台+后台
Extjs动态Grid的生成 htm
checkboxgroup中修改时赋值是最难解决的,要改写方法才能实现
Extjs3.0 中的CheckboxGroup默认不能动态添加item。虽然它继承了Ext.form.Field,但是却类似于容器。 CheckboxGroup配置中的items处理生成一个对应的panel,该处理过程只有一次,所以很难对CheckboxGroup进行动态...
ExtJs4 Checkbox tree
在 gridPanel中动态生成带按钮及查询条件的工具栏
通过修改网络上的一个树的例子实现节点的动态加载,还支持checkbox。
extjs界面生成器extjs界面生成器extjs界面生成器extjs界面生成器extjs界面生成器
extjs动态生成model、store、panel;sql拼接等多种技术难点
代码如下: Ext.override(Ext.form.CheckboxGroup,{ setValueForItem : function(val){ //多个选项值以逗号分开的 val = “,”+val+”,” this.items.each(function(item) { if (val.indexOf(item.inputValue) > -1) ...
ExtJs代码自动生成的规则,可用于反向生成。
NULL 博文链接:https://dejazhan.iteye.com/blog/871259
extjs上方动态导航栏extjs上方动态导航栏extjs上方动态导航栏
NULL 博文链接:https://ynp.iteye.com/blog/1440695
ASP.NET结合EXTJS动态生成Grid列表的例子程序源码
extjs实现动态树
重写 代码如下: //解决checkboxgroup回填数据问题 Ext.override(Ext.form.BasicForm,{ findField : function(id){ var field = this.items.get(id); if(!field){ this.items.each(function(f){ if(f.isXType(...
Extjs主界面生成导航文档,附上配图和说明