extjs下页面元素如何重新加载
我的items是登录后动态赋值给它的,利用ajax从后台返回一个字符串.可是放到onready里就是加载不上,那个字符串是正确的,如何重新加载一下页面元素.如:items:[itemslist],在firefox中显示返回的itemslist是这样的"{id:'2',title:'营业管理',autoScroll:true,border:true,iconCls:'nav'},{id:'6',title:'无线调度',autoScroll:true,border:true,iconCls:'nav'}"
部分代码如下:
var itemslist='';
Ext.Ajax.request({
url: 'rootmenu',
success: function(response, options){
itemslist=response.responseText.toString().trim;
},
failure: function(){
alert('错误', '网络连接错误,请重新登录!');
}
});
Ext.onReady(function(){
Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
setTimeout(function(){
Ext.get('loading').remove();
var viewport = new Ext.Viewport({
layout:'border',
items:[
{
region:'north',
id:'north-panel',
html:'管理系统',
// title:"上部",
margins:'0 0 0 0',
// split:false,//间隙
// collapsible: true,//显示隐藏面板
height:50,
// border:false
},
{
region:'west',
id:'west-panel',
title:'导航菜单',
split:true,
width:200,
minSize:175,
maxSize:400,
collapsible:true,
margins:'0 0 0 5',
cmargins:'0 0 0 5',
layout:'accordion',
border:false,
items:[itemslist]
},{
ajax请求时异步操作。
所有的都放在异步后
Ext.Ajax.request({
url: 'rootmenu',
success: function(response, options){
itemslist=response.responseText.toString().trim;
//写在这里
},
failure: function(){
alert('错误', '网络连接错误,请重新登录!');
}
});
于extjs中ajax的同步加载,参考网上的资料是这样的,extjs从2.0到3.0以后,ajax的同步异步提交发生了变化,3.0以后引用一个js包,引用以后如下操作
Ext.Ajax.request({
url: 'rootmenu', //这里是输出json的action
async : false , //默认为true异步提交,false为同步提交
success: function(response, options){
itemslist=response.responseText.toString().trim;
},
failure: function(){
alert('错误', '网络连接错误,请重新登录!');
}
});
或者用如下的代码
var conn = Ext.lib.Ajax.getConnectionObject().conn;
conn.open("GET", 'rootmenu',false);
conn.send(null);
itemslist=conn.responseText.toString().trim;
是这样的在extjs中的items需要的是一个对象而不是一个字符串,我从后台取到的是一个字符串,现在对这个字符串需要两次itemslist= =Ext.util.JSON.decode(Ext.util.JSON.decode(response.responseText.toString())),这样再items:itemslist就正常了,另外后台返回的字符串{id:'2',title:'营业管理',autoScroll:true,border:true,iconCls:'nav'},{id:'6',title:'无线调度',autoScroll:true,border:true,iconCls:'nav'}需要改为"[{id:'2',title:'营业管理',autoScroll:true,border:true,iconCls:'nav'},{id:'6',title:'无线调度',autoScroll:true,border:true,iconCls:'nav'}]"