在ext中如何动态设置checkbox的checked属性!
我是用循环根据后台返回数据动态创建多个checkbox的(默认为未选),还要在窗口显示前根据又一个后台请求返回数据来初始化这些复选框的选中状态,可是我在窗口的show监听...
我是用循环根据后台返回数据动态创建多个checkbox的 (默认为未选),还要在窗口显示前 根据又一个后台请求返回数据来初始化这些复选框的选中状态,可是我在窗口的show监听事件中 用 获取到的对象.checked=true;没用啊 ,即窗口显示后 里面的checkbox还是没选中 ,这要怎么动态设置为选中状态?
非常急,敬请高手指教! 展开
非常急,敬请高手指教! 展开
3个回答
展开全部
首先你要请确保每一个checkbox都有一个唯一的id,例如:
boxLabel : '新增',
id:"add",
anchor:"50%",
name : '新增'
Ext.getCmp.setValue(true);设置为选中状态
Ext.getCmp.setValue(false);设置为未选中状态
boxLabel : '新增',
id:"add",
anchor:"50%",
name : '新增'
Ext.getCmp.setValue(true);设置为选中状态
Ext.getCmp.setValue(false);设置为未选中状态
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是树的话
var node = ptree.getNodeById(store.getAt(i).get('id'));//获取节点
node.getUI().checkbox.checked = true;
var node = ptree.getNodeById(store.getAt(i).get('id'));//获取节点
node.getUI().checkbox.checked = true;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Ext.onReady(function() {
/*
转换数据库数据,判断是否选中
*/
function convertData(initData,valueData){
var items = new Array();
for(var i=0;i<initData.length;i++){
var temp=initData[i];
items[i]={name:'hobby',boxLabel:temp.dis,inputValue:temp.val,checked:isContains(valueData,temp.val)};//checked属性给的是定义的函数
}
return items;
}
/*
判断是否改选中。是返回true,否返回false
*/
function isContains(data,val){
var r = false;
for(var i=0;i<data.length;i++){
if(hobby[i]==val){
r=true;
break;
}
}
return r;
}
var initData=[{val:'zq',dis:'足球'},{val:'lq',dis:'篮球'},{val:'ppq',dis:'乒乓球'},{val:'wq',dis:'网球'}];//模拟数据库数据
var hobby=['zq','ppq'];//需要选中的数组,如果返回的是字符串的话转换成数组就行了
var itemsData=convertData(initData,hobby);//通过convertData(initData,valueData)函数将数据库数据转换成CheckboxGroup需要的数据
/*
创建CheckboxGroup
*/
var cgp = new Ext.form.CheckboxGroup({
fieldLabel:'爱好',
items:itemsData
});
/*
创建Form并渲染到页面
*/
var form = new Ext.form.FormPanel({
renderTo:'my_orm',
frame:true,
items:[cgp]
});
});
我刚写好的,不知道是不是最好的
/*
转换数据库数据,判断是否选中
*/
function convertData(initData,valueData){
var items = new Array();
for(var i=0;i<initData.length;i++){
var temp=initData[i];
items[i]={name:'hobby',boxLabel:temp.dis,inputValue:temp.val,checked:isContains(valueData,temp.val)};//checked属性给的是定义的函数
}
return items;
}
/*
判断是否改选中。是返回true,否返回false
*/
function isContains(data,val){
var r = false;
for(var i=0;i<data.length;i++){
if(hobby[i]==val){
r=true;
break;
}
}
return r;
}
var initData=[{val:'zq',dis:'足球'},{val:'lq',dis:'篮球'},{val:'ppq',dis:'乒乓球'},{val:'wq',dis:'网球'}];//模拟数据库数据
var hobby=['zq','ppq'];//需要选中的数组,如果返回的是字符串的话转换成数组就行了
var itemsData=convertData(initData,hobby);//通过convertData(initData,valueData)函数将数据库数据转换成CheckboxGroup需要的数据
/*
创建CheckboxGroup
*/
var cgp = new Ext.form.CheckboxGroup({
fieldLabel:'爱好',
items:itemsData
});
/*
创建Form并渲染到页面
*/
var form = new Ext.form.FormPanel({
renderTo:'my_orm',
frame:true,
items:[cgp]
});
});
我刚写好的,不知道是不是最好的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询