x291944973 2016-04-08 02:19 采纳率: 0%
浏览 1641
已采纳

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 2016-04-08 06: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();方法更方便

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型