Ext.getCmp(...)' 为空或不是对象
场景:Ext.getCmp()为空或不是对象解决思路
Ext.getCmp()为空或不是对象
我想在下拉框自动填充原有数据,不过数据库里存的是user_id,而要显示的是user_name。所以,我只能先从表里把user_id取出来,再去user表里找user_name.但是我一发请求页面就报错:Ext.getCmp()为空或不是对象。如果我改成文本框的形式直接显示user_id是有值的,帮我看一下这段代码有什么问题:xtype:'combo',
fieldLabel:'操作人',
allowBlank:false,
blankText:'操作者姓名不能为空',
name:'userId',
//id:'user2',
store:new Ext.data.Store({
autoLoad:false,
reader:new Ext.data.JsonReader({
totalRecords:"totalCount",
root:"list",
id:"userId" },
Ext.data.Record.create([
{name:'deptId'},
{name:'userName'},
{name:'userEmail'}
])
),
proxy:new Ext.data.HttpProxy({
url:'getUserById.action?userId='+Ext.getCmp('userId').getValue()
}/* ,{ url:'showuser.action?deptId='+Ext.getCmp('dept2').getValue()
} */) }),
allQuery:'alltask',
triggerAction:'all',
editable:false,
loadingText:'正在加载员工列表',
displayField:'userName',
valueField:'userId',
emptyText:'请输入操作者姓名',
width:190,
mode:'remote'
------解决方案--------------------
getCmp( id ) : Object
This is shorthand reference to Ext.ComponentManager.get. Looks up an existing Component by id
Available since: 1.1.0
Parameters
id : String
The component id
自己看API,你有给那个组件配置id没有
------解决方案--------------------
那只能说你调用的位置不对,还没有生成那个对象。自己搞清楚对象生成循序
------解决方案--------------------
请求数据的时候设置为同步加载就行了
------解决方案--------------------
后续处理放到回调成功的里面,要不就要和#5说的设置成同步的了
Ext.getCmp()为空或不是对象
我想在下拉框自动填充原有数据,不过数据库里存的是user_id,而要显示的是user_name。所以,我只能先从表里把user_id取出来,再去user表里找user_name.但是我一发请求页面就报错:Ext.getCmp()为空或不是对象。如果我改成文本框的形式直接显示user_id是有值的,帮我看一下这段代码有什么问题:xtype:'combo',
fieldLabel:'操作人',
allowBlank:false,
blankText:'操作者姓名不能为空',
name:'userId',
//id:'user2',
store:new Ext.data.Store({
autoLoad:false,
reader:new Ext.data.JsonReader({
totalRecords:"totalCount",
root:"list",
id:"userId" },
Ext.data.Record.create([
{name:'deptId'},
{name:'userName'},
{name:'userEmail'}
])
),
proxy:new Ext.data.HttpProxy({
url:'getUserById.action?userId='+Ext.getCmp('userId').getValue()
}/* ,{ url:'showuser.action?deptId='+Ext.getCmp('dept2').getValue()
} */) }),
allQuery:'alltask',
triggerAction:'all',
editable:false,
loadingText:'正在加载员工列表',
displayField:'userName',
valueField:'userId',
emptyText:'请输入操作者姓名',
width:190,
mode:'remote'
------解决方案--------------------
getCmp( id ) : Object
This is shorthand reference to Ext.ComponentManager.get. Looks up an existing Component by id
Available since: 1.1.0
Parameters
id : String
The component id
自己看API,你有给那个组件配置id没有
------解决方案--------------------
那只能说你调用的位置不对,还没有生成那个对象。自己搞清楚对象生成循序
------解决方案--------------------
请求数据的时候设置为同步加载就行了
------解决方案--------------------
getCmp( id ) : Object
This is shorthand reference to Ext.ComponentManager.get. Looks up an existing Component by id
Available since: 1.1.0
Parameters
id : String
The component id
自己看API,你有给那个组件配置id没有
我配置了id,调用那个id也是会报这样的错误
那只能说你调用的位置不对,还没有生成那个对象。自己搞清楚对象生成循序
我找了下原因,发现时加载延迟的问题。在上一条数据还没返回的时候,下一条请求已经发出来了,所以报空。但是我不知道怎么解决,有没有好的办法推荐下
后续处理放到回调成功的里面,要不就要和#5说的设置成同步的了