动态创建复选框;在ExtJS中点击按钮不会被选中
Dynamically created check box doesn't get checked on button click in ExtJS
-
我在"创建复选框"按钮上动态地(基于条件(创建了一个复选框,并在面板中添加了这个复选框。
-
根据我的条件,面板中只会添加一个复选框,它的项目id将为"a1"。
-
当点击另一个按钮时,"checkedcheckbox"复选框应该被选中,但它没有。当我点击按钮上的itemid得到这个复选框时,它在开发人员工具中显示为未定义。如果我通过面板项目获得它,那么它不会显示未定义,但复选框不会选中。
问题
- 如果我是通过itemId获取的,为什么复选框显示未定义
- 如果我正在按面板项目获取,为什么不选中复选框。应该通过直接获取itemid和面板项来实现这两种方式
我在sencha fiddler的帐户上有一些问题,这就是为什么我可以为你创建一个fiddler。
代码
Ext.onReady(function () {
var window = new Ext.Window({
id: 'grdWindow',
width: 400,
height: 500,
title: 'Grid Samples',
items: [
{
xtype: 'button',
text: 'Create checkbox',
handler: function () {
var obj1 = [
{ a: 1},
{ a: 2},
{ a: 3},
{ a: 4}
];
var obj2 = [
{ a: 1 },
{ a: 5 }
];
var i = 1;
var panel = Ext.getCmp('pnlTesting');
Ext.each(obj1, function (ob1) {
Ext.each(obj2, function (ob2) {
if (ob1.a == ob2.a) {
panel.add({
items:[
{
xtype: 'checkbox',
itemId: 'a'+i
}
]
});
return false;
}
});
});
}
},
{
xtype: 'panel',
id: 'pnlTesting',
height: 100,
renderTo: Ext.getBody()
},
{
xtype: 'button',
text: 'checkedcheckbox',
handler: function () {
Ext.getCmp('pnlTesting').items.items[0].items.items[0].checked = true;
//Ext.getCmp("a1").checked = true;
//Ext.getCmp('pnlTesting').doLayout();
}
}
]
}).show();
});
我建议学习.up()
.down()
.prev()
、.next()
和.query()
的用法
它们是强大的工具,可以在对象结构中导航每个组件,而无需处理特殊的项ID。您还可以通过配置选项(如component.query('button[name="mybutton"]')
(获取组件
我为你在sencha fiddle中的要求做了一个(非常(小的例子:https://fiddle.sencha.com/#fiddle/sii
问题是,如果要更改复选框的状态,应该使用setValue(true)
而不是checked=true
。
{
xtype: 'button',
text: 'checkedcheckbox',
handler: function (btn) {
Ext.getCmp('pnlTesting').items.items[0].items.items[0].setValue(true);
}
}
而且,这是一种获取组件的丑陋方式,我用down()
和它的itemId
来获取它
Ext.getCmp('pnlTesting').down('#a1').setValue(true);
p.D:您应该改进这个选择器,因为使用id
和getCmp()
对于ExtJS来说不是一个好的做法。
相关文章:
- 复选框/单选按钮-添加所选项目的总价
- 单选按钮的验证(启用)&使用Jquery Optimization从复选框中选择submit按钮
- 单击单选按钮时选中所有复选框
- 在jquery中选中复选框时启用confirmbox按钮
- 基于单选按钮和复选框的数据表排序
- JavaScript - 如果未选中复选框,则取消选中单选按钮
- 如果未选中复选框,则禁用引导输入按钮
- 如果用户未选中复选框或选择按钮,如何为复选框或单选按钮设置一些默认值
- JavaScript - 如果选中任何复选框,请选择单选按钮
- 用于控制单选按钮的复选框
- 样式为 -webkit-外观的单选按钮:复选框:Chrome 中的不确定状态
- Ajax + 浏览器后退按钮 = 复选框不起作用
- 引导数据切换单选按钮/复选框选中属性
- 如何绑定引导按钮复选框和表单
- 按钮复选框不保存选中的
- 在Twitter Bootstrap 3按钮(复选框)仍然是灰色后,它是未检查的
- 在Highcharts中使用按钮/复选框显示/隐藏数据的示例
- 散景-检查复选框与按钮/复选框回调
- 单选按钮+复选框组合
- 尝试提交“按钮复选框”的集合