extjs tabpanel右键菜单事件重复问题

在点右键菜单中的Remove Contact后会出现重复,在TABPANEL中每关闭一次PANEL,重复就会增加一次。
找问题很长时间,实在找不出来,特发贴请各位帮忙看看!
joblist 代码;
var createColumns = function(finish, start) {

var columns = [ {
dataIndex : 'JOBNO',
text : 'JOBNO',
width : 160,
filter : {
type : 'string'
}
}, {
dataIndex : 'ITEMNO',
text : 'ITEMNO',
}, {
dataIndex : 'CODE',
text : 'CODE',
filter : true,
width : 100
}, {
dataIndex : 'BDESC',
text : 'BDESC',
width : 200,
filter : true
}, {
dataIndex : 'CBDESC',
text : 'CBDESC',
width : 200,
filter : true
}, {
dataIndex : 'PLOT',
text : 'PLOT',

}, {
dataIndex : 'QTY',
text : 'QTY',
filter : {
type : 'numeric'
},
}, {
dataIndex : 'CQTY',
text : 'CQTY',
filter : {
type : 'numeric'
}
} ];

return columns.slice(start || 0, finish);
};

var filters = {
ftype : 'filters',
type : 'list',
encode : true,
local : false,
filters : [ {
type : 'boolean',
dataIndex : 'visible'
} ]
};
Ext.Loader.setPath('Ext.ux', './ExtJS/ux');
Ext.require([ 'Ext.grid.*', 'Ext.data.*', 'Ext.ux.grid.FiltersFeature',
'Ext.toolbar.Paging', 'Ext.ux.ajax.JsonSimlet',
'Ext.ux.ajax.SimManager' ]);

Ext.define('HT.view.job.jobList', {
extend : 'Ext.grid.Panel',
alias : 'widget.jobList',
store : 'job.jobStore',
loadMask : true,
initComponent : function() {
Ext.apply(this, {
columns : createColumns(8),
features : [ filters ],
dockedItems : [ Ext.create('Ext.toolbar.Paging', {
dock : 'bottom',
store : this.store,
items : [ '-', {
xtype : 'button',
text : 'All Filter Data',
pressed : true,
enableToggle : true,
tooltip : 'Get Filter Data for Grid',
}, {
xtype : 'button',
text : 'Clear Filter Data',
pressed : true,
enableToggle : true,
} ]
}) ],
emptyText : 'No Matching Records',
});

this.addEvents('removeitem');
this.actions = {
test : new Ext.Action({
text : 'Remove Contact',
handler : function() {
this.fireEvent('removeitem', this.getSelected());
},
scope : this
})
};
var nodemenu = new Ext.menu.Menu({
floating : true,
items : [ this.actions.test ]
});
this.on({
'itemcontextmenu' : function(menutree, record, items, index, e) {
e.preventDefault();
e.stopEvent();
nodemenu.showAt(e.getXY());
return false;
}
}), this.callParent(arguments);
},
getSelected : function() {
var sm = this.getSelectionModel();
var rs = sm.getSelection();
if (rs.length) {
return rs[0];
}
return null;
}
});
jobview 代码:
Ext.define('HT.view.job.jobView', {
extend : 'Ext.Panel',
title : 'Grid Filters Example',
alias : 'widget.jobView',
// height: 400,
// width: 875,
layout : 'fit',
items : [ {
xtype : 'jobList',
}]
});

jobstore 代码:
var url = {
remote : 'test/testxml.action'
};
Ext.define('HT.store.job.jobStore', {
extend : 'Ext.data.Store',
model : 'HT.model.job.jobModel',
// autoLoad : true,
// pageSize : 20,
proxy : {
type : 'ajax',
url : url.remote,
reader : {
type : 'xml',
record : 'job',
totalProperty : 'TotalResults'
}
},
});
jobController 代码:
Ext.define('HT.controller.jobController', {// 定义类
extend : 'Ext.app.Controller',// 一定要继承Controller
models : ['job.jobModel'],
stores : ['job.jobStore'],
views : ['job.jobView','job.jobList'],
refs : [ {
ref : 'jobList',
selector : 'jobList'
}],
// 自动调用此方法
init : function(app) {
var center = app.getController('Controllers').getCenter();
var tPanel = center.getComponent(7);
if (!tPanel) {
var tpanel = Ext.getCmp('jobView');
if(!tpanel){
var tPanel = Ext.widget('jobView', {id:7,closable:true,closeAction:'hide',title: '工单' });
center.add(tPanel);
alert('b');
}
center.setActiveTab(tPanel);
center.doLayout();
} else {
alert('t');
center.setActiveTab(tPanel);
}

var jobList = this.getJobList();
jobList.getStore().load();

this.control({
'jobList button[text=All Filter Data]': {
click: function(b) {
var data = Ext.encode(jobList.filters.getFilterData());
Ext.Msg.alert('All Filter Data', data);
}
},
'jobList button[text=Clear Filter Data]': {
click: function(b) {
jobList.filters.clearFilters();
}
},
'jobList': {
removeitem: this.removeContact
}
});
},
removeContact:function(jobList){
// alert(jobList.get('JOBNO'));
var jobList2 = this.getJobList();
console.log(jobList2.getId( ));
}
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值