extjs 不同组件,调用方法Ext.getCmp('id');

又找到怎么修改昵称了 2012-09-12 11:24:19


//这里是一个绑定在grid双击事件上的一些代码,问题:这样大量使用id会不会有bug呢?好像有看到说尽量少用id这样的说法
this.homePageConfigGrid.on('rowclick', function(grid, rowIndex, event) {
var record = grid.getStore().getAt(rowIndex);
me.homePageConfigForm.getForm().loadRecord(record);
me.homePageConfigForm.buttons[0].setText('修改');

var _flagId = record.get('flag');

if( _flagId == '1' ){
Ext.getCmp('flag1').checked = true;
} else if( _flagId == '2' ){
Ext.getCmp('flag7').checked = true;
} else if(_flagId == '3'){
Ext.getCmp('flag3').checked = true;
} else if(_flagId == '4'){
Ext.getCmp('flag4').checked = true;
} else if(_flagId == '5'){
Ext.getCmp('flag5').checked = true;
} else if(_flagId == '6'){
Ext.getCmp('flag6').checked = true;
};

});
-------------------------------------------------------------------------------------------
//这里是form里央的那个单选框,有7种不同的选项
{
xtype : 'fieldset',
checkboxToggle : true,
hideLabels : true,
autoHeight : true,
defaultType : 'radio',
title : '选择模块',
items : [{
boxLabel : '顶部广告',
id : 'flag1',
name : 'flag',
inputValue : '1'
}, {
boxLabel : '右上角广告',
id : 'flag7',
name : 'flag',
inputValue : '7'
}, {
boxLabel : '幻灯片',
id : 'flag2',
name : 'flag',
inputValue : '2'
}, {
boxLabel : '推荐电影',
id : 'flag3',
name : 'flag',
inputValue : '3'
}, {
boxLabel : '活动图片',
id : 'flag4',
name : 'flag',
inputValue : '4'
}, {
boxLabel : '团购图片',
id : 'flag5',
name : 'flag',
inputValue : '5'
}, {
boxLabel : '影评',
id : 'flag6',
name : 'flag',
inputValue : '6'
}]
}



求大牛们看看,提点建议,如果不用id这种方式用其他的什么方式比较好,简单一点最好,
...全文
533 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
恩,这样啊..谢谢牛牛们的说明..
下次有问题在请教.
  • 打赏
  • 举报
回复
额..有人在吗?
怎么回事..路过的牛牛们,呼叫中..
  • 打赏
  • 举报
回复
你枚..发个技术问题贴都404!.
都分不清重点了!
  • 打赏
  • 举报
回复

居然又404...
yibey 2012-09-12
  • 打赏
  • 举报
回复
ni 可以给你的fieldset设置一个ID啊(比如就叫test),



var _flagId = record.get('flag');

if( _flagId == '1' ){
Ext.getCmp('flag1').checked = true;
} else if( _flagId == '2' ){
Ext.getCmp('flag7').checked = true;
} else if(_flagId == '3'){
Ext.getCmp('flag3').checked = true;
} else if(_flagId == '4'){
Ext.getCmp('flag4').checked = true;
} else if(_flagId == '5'){
Ext.getCmp('flag5').checked = true;
} else if(_flagId == '6'){
Ext.getCmp('flag6').checked = true;
};

改成

Ext.getCmp('test').findByType('radio')[parseInt(record.get('flag'))-1].checked = true;

未知数 2012-09-12
  • 打赏
  • 举报
回复
首先,没有要少使用id这回事
别人这样和你说主要是因为大量配置id可能一不小心就重复了,不配置id可以由ext分配能保证不重复。
你已经配置id了,使不使用不会有任何区别。

但你的写法也确实不高明
这样就ok了
var _flagId = record.get('flag');
Ext.getCmp('flag'+_flagId).chexked=true;

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧