如何取消选中 Ext 网格中特定行的检查列
How to uncheck the checkcolumn of perticular row in Ext grid
我有一个网格,其中有一列复选框。我用过 xtype checkcolumn
为此。在此处关注 fiddle:https://fiddle.sencha.com/#view/editor&fiddle/2ano
现在我想在单击给定按钮时取消选中特定行(在本例中为第 2 行)的复选框。我尝试使用 xtypes 获取它们,但没有成功。
我终于找到了解决方法。
store.getAt(1).data.active = false;
grid.getView().refresh();
它有效,但不确定这样做是否正确。
我会很高兴提出任何建议。
谢谢。
One way as per your code.
您可以使用网格存储的这种方法store.each()
, store.clearFilter()
and store.filter('active',true)
.
在此 FIDDLE 中,您可以使用 record.set('active',false)
.
在此处检查 uncheck
已检查的列
var store = Ext.create('Ext.data.Store', {
fields: ['name', 'email', 'phone', 'active'],
data: [{
name: 'Lisa',
email: 'lisa@simpsons.com',
phone: '555-111-1224',
active: false
}, {
name: 'Bart',
email: 'bart@simpsons.com',
phone: '555-222-1234',
active: true
}, {
name: 'Homer',
email: 'homer@simpsons.com',
phone: '555-222-1244',
active: false
}, {
name: 'Marge',
email: 'marge@simpsons.com',
phone: '555-222-1254',
active: false
}]
});
Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
itemId: 'test',
renderTo: Ext.getBody(),
store: store,
buttons: [{
text: 'Un check',
handler: function () {
var store = this.up('grid').getStore();
store.clearFilter();
store.filter('active', true);
store.each(function (rec) {
rec.set('active', false);
});
store.clearFilter();
}
}],
columns: [{
text: 'Name',
dataIndex: 'name'
}, {
text: 'Email',
dataIndex: 'email',
flex: 1
}, {
text: 'Phone',
dataIndex: 'phone'
}, {
xtype: 'checkcolumn',
text: 'Active',
dataIndex: 'active'
}]
});
Another way as per your code.
您可以使用 selModel
and selType
configs for grid
.
在此 FIDDLE 中,我使用 selType
和 selModel
配置创建了一个演示。它将帮助您或指导您更多地了解 grid
复选框选择。
Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
store: store,
id: 'testGrid',
columns: [{
text: 'Name',
dataIndex: 'name'
}, {
text: 'Email',
dataIndex: 'email',
flex: 1
}, {
text: 'Phone',
dataIndex: 'phone'
}],
renderTo: Ext.getBody(),
selModel: {
checkOnly: false,
//injectCheckbox: 'last',
mode: 'SIMPLE'
},
selType: 'checkboxmodel',
buttons: [{
text: 'Select All',
handler: function () {
Ext.getCmp('testGrid').getSelectionModel().selectAll();
}
}, {
text: 'Deselect All',
handler: function () {
Ext.getCmp('testGrid').getSelectionModel().deselectAll();
}
}]
});
我有一个网格,其中有一列复选框。我用过 xtype checkcolumn
为此。在此处关注 fiddle:https://fiddle.sencha.com/#view/editor&fiddle/2ano
现在我想在单击给定按钮时取消选中特定行(在本例中为第 2 行)的复选框。我尝试使用 xtypes 获取它们,但没有成功。
我终于找到了解决方法。
store.getAt(1).data.active = false;
grid.getView().refresh();
它有效,但不确定这样做是否正确。 我会很高兴提出任何建议。 谢谢。
One way as per your code.
您可以使用网格存储的这种方法store.each()
, store.clearFilter()
and store.filter('active',true)
.
在此 FIDDLE 中,您可以使用 record.set('active',false)
.
uncheck
已检查的列
var store = Ext.create('Ext.data.Store', {
fields: ['name', 'email', 'phone', 'active'],
data: [{
name: 'Lisa',
email: 'lisa@simpsons.com',
phone: '555-111-1224',
active: false
}, {
name: 'Bart',
email: 'bart@simpsons.com',
phone: '555-222-1234',
active: true
}, {
name: 'Homer',
email: 'homer@simpsons.com',
phone: '555-222-1244',
active: false
}, {
name: 'Marge',
email: 'marge@simpsons.com',
phone: '555-222-1254',
active: false
}]
});
Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
itemId: 'test',
renderTo: Ext.getBody(),
store: store,
buttons: [{
text: 'Un check',
handler: function () {
var store = this.up('grid').getStore();
store.clearFilter();
store.filter('active', true);
store.each(function (rec) {
rec.set('active', false);
});
store.clearFilter();
}
}],
columns: [{
text: 'Name',
dataIndex: 'name'
}, {
text: 'Email',
dataIndex: 'email',
flex: 1
}, {
text: 'Phone',
dataIndex: 'phone'
}, {
xtype: 'checkcolumn',
text: 'Active',
dataIndex: 'active'
}]
});
Another way as per your code.
您可以使用 selModel
and selType
configs for grid
.
在此 FIDDLE 中,我使用 selType
和 selModel
配置创建了一个演示。它将帮助您或指导您更多地了解 grid
复选框选择。
Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
store: store,
id: 'testGrid',
columns: [{
text: 'Name',
dataIndex: 'name'
}, {
text: 'Email',
dataIndex: 'email',
flex: 1
}, {
text: 'Phone',
dataIndex: 'phone'
}],
renderTo: Ext.getBody(),
selModel: {
checkOnly: false,
//injectCheckbox: 'last',
mode: 'SIMPLE'
},
selType: 'checkboxmodel',
buttons: [{
text: 'Select All',
handler: function () {
Ext.getCmp('testGrid').getSelectionModel().selectAll();
}
}, {
text: 'Deselect All',
handler: function () {
Ext.getCmp('testGrid').getSelectionModel().deselectAll();
}
}]
});