2 x291944973 x291944973 于 2016.04.08 10:19 提问

extjs更该tools的disable属性问题

有个tabpanel,每个tab上有一个panel,且panel有tools;
我想通过某个按钮的操作切换tools的disabled属性,但是出现两个问题:
1.Ext.getCmp('shipSetModule').tools[0].enable();会报错Uncaught TypeError: Ext.getCmp('shipSetModule').tools[0].disable is not a function,但是使用Ext.getCmp('shipSetModule').tools[0].disabled=false;就不报错,想不通为什么。。。
2.通过按钮操作tools的disabled属性页面上不生效,想不通为什么。。。
求解答。。。
补充一下代码:
id : 'orderDetailTabpanel',
xtype : 'tabpanel',
enableTabScroll: true, //选项卡过多时,允许滚动
defaults: { autoScroll: true },
items : [{
id : 'tab1',
title : '基本信息',
closable : false,
items : [{
xtype: 'form',
id:'orderSetModule',
itemId : 'orderSetModule',
// title:'基本信息',
width: '100%',
collapsible:true,
titleCollapse:true,
defaults: {
labelWidth: 200,
columnWidth: 1
},
items : [ {
xtype: 'fieldcontainer',
layout: 'column',
items: [
{xtype : "displayfield", name : 'orderSn', fieldLabel : "订单号", columnWidth: .33 },
{xtype : "displayfield", name : 'orderOutSn', fieldLabel : "外部交易号", columnWidth: .33} ,
{xtype : "displayfield", name : 'ordertotalstatusStr', fieldLabel : "订单状态", columnWidth: .33,
renderer : function (value) { return ""+value+""; } }
]
} ,
{
xtype: 'fieldcontainer',
layout: 'column',
items: [
{xtype : "displayfield", name : 'channelName', fieldLabel : "订单来源", columnWidth: .33 } ,
{xtype : "displayfield", name : 'clearTime', fieldLabel : "结算时间", columnWidth: .33 } ,
{xtype : "displayfield", name : 'userName', fieldLabel : "购货人", columnWidth: .33}
]
} ,
{
xtype: 'fieldcontainer',
layout: 'column',
items: [
{xtype : "displayfield", name : 'addTime', fieldLabel : "下单时间", columnWidth: .33},
{xtype : "displayfield", name : 'transTypeStr', fieldLabel : "订单交易类型", columnWidth: .33 } ,
//分仓发货状态(0,未分仓 1,已分仓未通知 2,已分仓已通知)
{xtype : "displayfield", name : 'depotStatus', fieldLabel : "分仓发货状态", columnWidth: .33,
renderer : function (value) {
if(value==2){
return "已分仓已通知";
}else if(value==1){
return "已分仓未通知";
}else{
return "未分仓";
}
}
}
]
} ,
{
xtype: 'fieldcontainer',
layout: 'column',
items: [
{xtype : "displayfield", name : 'orderTypeStr', fieldLabel : "订单类型", columnWidth: .33},
{xtype : "displayfield", name : 'relatingReturnSn', fieldLabel : "关联退货单号", columnWidth: .33,
renderer : function (v) {
if (v != null && v != '') {
var url = order_return_url + v
return '' + v +'';
}
return "";
}
},
{xtype : "displayfield", name : 'prName', fieldLabel : "促销信息", columnWidth: .33}
]
} ,
{
xtype: 'fieldcontainer',
layout: 'column',
items: [
{xtype : "displayfield", name : 'relatingOriginalSn', fieldLabel : "关联原订单号", columnWidth: .33,
renderer : function (v) {
if (v != null && v != '') {
var url = order_info_url + v
return '' + v +'';
}
return "";
}
},
{xtype : "displayfield", name : 'invoicesOrganization', fieldLabel : "单据组织", columnWidth: .33 } ,
{xtype : "displayfield", name : 'orderCategoryStr', fieldLabel : "订单种类", columnWidth: .33}
]
},
{
xtype: 'fieldcontainer',
layout: 'column',
items: [
//是否为团购订单( 0:否 1;是)
{xtype : "displayfield", name : 'isGroup', fieldLabel : "团购订单", columnWidth: .33,
renderer : function (value) {
if(value==1){
return "是";
}else{
return "否";
}
}
},
//是否为预售商品(0:否 1:是)
{xtype : "displayfield", name : 'isAdvance', fieldLabel : "订单含预售商品", columnWidth: .33,
renderer : function (value) {
if(value==1){
return "是";
}else{
return "否";
}
}
}, {xtype : "displayfield", name : 'reason', fieldLabel : "原因", columnWidth: .33,
renderer : function (value) {
if(value=="S"){
return "零售";
}else if(value=="J"){
return "物资领用";
}else if(value=="T"){
return "其它出库";
}
}
}
]
} ,
{
xtype: 'fieldcontainer',
layout: 'column',
items: [
{xtype : "displayfield", name : 'cancelReason', fieldLabel : "取消订单原因", columnWidth: 1}
]
} ],
tools : [ {
disabled : true,
type: 'refresh',
handler: function(){
Ext.getCmp('orderShow').initData();
Ext.msgBox.msg('刷新', "刷新页面成功!", Ext.MessageBox.INFO);
}
} ]
}]
}
只贴了部分 不是一个完整的tabpannel

2个回答

x291944973
x291944973   2016.04.08 14:19
已采纳

已解决
tabpanel加上属性:deferredRender:false,就可以了
还是使用Ext.getCmp('shipSetModule').tools[1].enable();的赋值语句
如果使用Ext.getCmp('shipSetModule').tools[1].disabled=false,还需要针对tool的样式cls样式进行修改
所以还是Ext.getCmp('shipSetModule').tools[1].enable();方法更方便

showbo
showbo   Ds   Rxr 2016.04.08 10:33
x291944973
x291944973 tab上的form
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!