原代码如下:
function showmenu(value){
//获得toolbar对象
var showmenu_tb = Ext.getCmp('toolbar');
var showmenu_tbItems = showmenu_tb.items;
if (showmenu_tbItems != null) {
for (var i = 0; i < showmenu_tbItems.length; i++) {
var showmenu_item = showmenu_tbItems.get(i);
showmenu_item.destroy();
}
}
Ext.Ajax.request({
url: 'flushMenuItem.action',
method: 'post',
params: {
"menuid": value
},
success: function(response, options){
var strObj = Ext.util.JSON.decode(response.responseText);
if (strObj['menuItemData'] != null && strObj['menuItemData'] != '') {
alert(strObj['menuItemData']);
showmenu_tb.add(eval("(" + strObj['menuItemData'] + ")"));
var showmenu_tb1 = Ext.getCmp('toolbar');
var showmenu_tbItems1 = showmenu_tb.items;
alert(showmenu_tbItems1.length);
}
}
});
}
我想通过异步方式查出toolbar里面的菜单,结果始终显示最后一个菜单,当我var showmenu_tb1 = Ext.getCmp('toolbar');
var showmenu_tbItems1 = showmenu_tb.items;
alert(showmenu_tbItems1.length);又确实打出有多条。请问各位,这是什么原因?
function showmenu(value){
//获得toolbar对象
var showmenu_tb = Ext.getCmp('toolbar');
var showmenu_tbItems = showmenu_tb.items;
if (showmenu_tbItems != null) {
for (var i = 0; i < showmenu_tbItems.length; i++) {
var showmenu_item = showmenu_tbItems.get(i);
showmenu_item.destroy();
}
}
Ext.Ajax.request({
url: 'flushMenuItem.action',
method: 'post',
params: {
"menuid": value
},
success: function(response, options){
var strObj = Ext.util.JSON.decode(response.responseText);
if (strObj['menuItemData'] != null && strObj['menuItemData'] != '') {
alert(strObj['menuItemData']);
showmenu_tb.add(eval("(" + strObj['menuItemData'] + ")"));
var showmenu_tb1 = Ext.getCmp('toolbar');
var showmenu_tbItems1 = showmenu_tb.items;
alert(showmenu_tbItems1.length);
}
}
});
}
我想通过异步方式查出toolbar里面的菜单,结果始终显示最后一个菜单,当我var showmenu_tb1 = Ext.getCmp('toolbar');
var showmenu_tbItems1 = showmenu_tb.items;
alert(showmenu_tbItems1.length);又确实打出有多条。请问各位,这是什么原因?
改成
showmenu_tb.add(eval("{" + strObj['menuItemData'] + "}"));
"()"-->"{}"是否可行?
创建toolbar后,后台数据并没有读取。等读取后台数据后,再赋值就晚了。
我改了一下代码如下,就OK了!
SetToolButtons = function(tbr) {
Ext.Ajax.request({
url: 'rolegroup.aspx',
params: '',
method: 'POST',
success: function(response, options) {
var rsp = Ext.util.JSON.decode(response.responseText);
var total = rsp.totalProperty;
var arrays = new Array(total);
for (var i = 0; i < total; i++) {
arrays[i] = new Ext.Toolbar.Button({ text: rsp.result[i].text, iconCls: 'icon-home' });
}
tbr.add(arrays);
tbr.addFill();
tbr.addButton(
{
text: '我的桌面',
iconCls: 'icon-desktop',
scope: this
});
tbr.addSeparator();
tbr.addButton([
{
text: '重新登录',
iconCls: 'icon-user'
},
{
text: '退出系统',
iconCls: 'icon-exit'
}]);
},
failure: function() {
Ext.Msg.alert("提示信息", "按钮加载失败,请稍后重试!");
}
});
};Ext.onReady(function() {
Ext.QuickTips.init();
var toolbar = new Ext.Toolbar({
id: 'tool_bar',
cls: 'top-toolbar'
});
SetToolButtons(toolbar);
}
希望对大家有帮助!