ExtJs 修改组件值方式

我在做一个下拉列表的级联

1
2
3
4
5
6
7
Ext.getCmp( '_s_combobox_peSite_siteName' ).on( 'change' , function (e,select){
//为下一级下拉框加载新值
//参数说明:select:peSite.Id   url:需加载的下接框        target:数据存放位置
//自定义方法getList(select,url,target)
//alert('e:' +e + ' select: ' + select);
getList(select, '/entity/teaching/electiveManage_ajaxGetTraining.action?siteId=' +select, '_s_combobox_peTraining_trainingName' , '学期' );
});
1
2
3
4
5
6
7
8
9
10
11
12
function  getList(id,url,target,title){
Ext.Ajax.request({
url:url,
method: 'GET' ,
disableCaching: true ,
callback: function (option,success,response){
if (success){
_s_combobox_peTraining_trainingName = eval(response.responseText);
}
}
});
}

因为从服务单传过来response.responseText的内容就是下面所示的一个拼接字符串

1
_s_combobox_peTraining_trainingName =  new  Ext.form.ComboBox({ applyTo: '_s_combobox_peTraining_trainingName' , width:  150 , store:  new  Ext.data.SimpleStore({ fields: [ 'id' 'name' ], data : [[ '4af8dec33e9d07a7013e9d0a57bc0004' , '2013第一学期' ],[ '4af8dec33e9d07a7013e9d0b5fbc0005' , '2013第二学期' ]] }), valueField:  'id' , displayField: 'name' , selectOnFocus: true , allowBlank:  true , typeAhead: false , fieldLabel:  '学期' , name: '_s_combobox_peTraining_trainingName' , id: '_s_combobox_peTraining_trainingName' , triggerAction:  'all' , editable:  true , mode: 'local' , emptyText: '' , blankText: '' });

如果直接写成:_s_combobox_peTraining_trainingName =response.responseText

浏览器会把response.responseText当前一个字符串来处理,这样页面就无法显示,

可以通过js里面的alert(typeof(response.responseText))方法来查看它的类型(String),但是这里我要的是一个对象,所在我用js里面的eval(response.responseText)方法将它转换成了object类型,alert(typeof(response.responseText))弹出来的是object类型,这样页面就能显示了

产明

1
2
3
这里主要说明两点:
1、通过js里面的eval(String)方法将字符串转换成object对象
2、通过为同一个object对象重新赋值来改变他原来的参数值

 

本文转自  wbb827  51CTO博客,原文链接:http://blog.51cto.com/wbb827/1201871


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值