控制器/处理程序中的ExtJS更改actioncolumn图标
TLDR:我正在使用ExtJS 4,我想从控制器/处理程序中的ExtJS更改actioncolumn图标,extjs,extjs4,Extjs,Extjs4,TLDR:我正在使用ExtJS 4,我想从hanlder/controller更改操作列按钮图标。我怎么能做到 我的问题:我有一个菜单来创建一组设备,它包含一个包含所有现有设备的表(该设备有一个id,名称,并且隶属于组成员),带有分页和ajax存储。要创建一个组,我必须向服务器传递一个设备ID数组 为此,我将操作列添加到网格中。通过单击action列中的按钮,我想将设备id添加到两个数组中的一个,这两个数组存储为网格属性(addedMembers和deletedMembers),并更改actio
hanlder
/controller更改操作列按钮图标。我怎么能做到
我的问题:我有一个菜单来创建一组设备,它包含一个包含所有现有设备的表(该设备有一个id
,名称
,并且隶属于组成员
),带有分页和ajax存储。要创建一个组,我必须向服务器传递一个设备ID数组
为此,我将操作列添加到网格中。通过单击action列中的按钮,我想将设备id添加到两个数组中的一个,这两个数组存储为网格属性(addedMembers
和deletedMembers
),并更改action列中的图标。目前,以下所有代码都可以工作,但我不明白如何更改图标
网格:
或者也许有更好的办法来解决我的问题?我无权发表评论,所以我只想尝试一下答案。我就是这样做的……你就快到了,只需添加图标即可。:)
{
xtype:'actioncolumn',
文本:Ext.String.capitalize(“”),
宽度:75,
项目:[
{
iconCls:“拒绝”//
Ext.define('Portal.view.devicegroups.GroupDevicesGrid', {
extend: 'Ext.grid.Panel',
alias: 'widget.groupDevicesGrid',
addedMembers: [],
deletedMembers: [],
store: 'devicegroups.GroupDevicesStore',
columns: [
{
dataIndex: 'name',
flex: 1,
sortable: true,
text: Ext.String.capitalize("<?=gettext('name')?>")
},
{
xtype: 'actioncolumn',
text: Ext.String.capitalize("<?=gettext('member')?>"),
width: 75,
items: [
{
getClass: function (value, meta, record, rowIndex, colIndex) {
var cls = 'deny';
if (this.up('groupDevicesGrid').deletedMembers.indexOf(record.get('id')) !== -1 || record.get('member') == 1) {
cls = 'allow';
}
return cls;
},
handler: function (view, rowIndex, colIndex, item, event, record, row) {
this.fireEvent('changeMembership', rowIndex, record);
}
}
]
}
]
});
changeGroupDeviceMembership: function(rowIndex, device) {
var groupDevicesGrid = this.getGroupDevicesGrid(),
groupDevicesStore = groupDevicesGrid.getStore(),
addedMembers = groupDevicesGrid.addedMembers,
deletedMembers = groupDevicesGrid.deletedMembers,
deviceId = device.get('id'),
isMember = device.get('member');
if(isMember == 1) {
if(deviceId) {
if(deletedMembers.indexOf(deviceId) === -1) {
// Set allow icon
deletedMembers.push(deviceId);
} else {
// Set deny icon
deletedMembers.splice(deletedMembers.indexOf(deviceId), 1);
}
}
} else if(isMember == 0) {
if(deviceId) {
if(addedMembers.indexOf(deviceId) === -1) {
// Set deny icon
addedMembers.push(deviceId);
} else {
// Set allow icon
addedMembers.splice(deletedMembers.indexOf(deviceId), 1);
}
}
}
},
{
xtype: 'actioncolumn',
text: Ext.String.capitalize("<?=gettext('member')?>"),
width: 75,
items: [
{
iconCls:'deny', //<== try adding this icon cls
getClass: function (value, meta, record, rowIndex, colIndex) {
var cls = 'deny';
meta.tdAttr = 'data-qtip="Deny"'; //<== I like tool tips
if (this.up('groupDevicesGrid').deletedMembers.indexOf(record.get('id')) !== -1 || record.get('member') == 1) {
cls = 'allow';
meta.tdAttr = 'data-qtip="Allow"'; //<== I like tool tips
}
return cls;
},
handler: function (view, rowIndex, colIndex, item, event, record, row) {
this.fireEvent('changeMembership', rowIndex, record);
}
}
]
}