ext的高手帮帮小弟我关于toolbar动态菜单的有关问题
ext的高手帮帮我关于toolbar动态菜单的问题
我想做一个根据角色权限动态显示toolbar菜单,以下代码是我从互联网上找来的,为什么我的运行不了?好郁闷??高手帮帮我,我刚学ext不久,请问这部分代码
// 2 发送请求,获取菜单
Ext.Ajax.request({
url: 'getMenusForUser.action', //这个action里面返回菜单
success: successCallBack,
failure: failureCallBack
});
没有任何事件触发的情况下也能发出请求吗???我就纠结在这里,我用struts1,写了一个getMenusForUser.action,也不知道对不对,请高手指点指点,好急呀,几天睡不着觉了
Ext.onReady(function(){
Ext.BLANK_IMAGE_URL='ext/resources/images/default/s.gif';
Ext.QuickTips.init();
// 1 创建菜单栏
var menuBar = new Ext.Toolbar();
menuBar.render('menubar');
menuBar.add('-');
// 2 发送请求,获取菜单
Ext.Ajax.request({
url: 'getMenusForUser.action', //这个action里面返回菜单
success: successCallBack,
failure: failureCallBack
});
// 3.加载菜单失败
function failureCallBack(){
Ext.Msg.alert('提示信息','菜单加载失败,请刷新页面');
};
// 3.加载菜单成功
function successCallBack(response){
var results=null;//服务器返回的菜单JSON集
try{
results=Ext.decode(response.responseText);
}catch(ex){
alert(response.responseText);
}
var menus=new Array();
var menus_index=0;
for(var i=0;i<results.length;i++){
var temp1=results[i];
if(temp1.fatherId==0){ //一级菜单
var menu_first=new Ext.menu.Menu({
id:temp1.id
});
menus[menus_index]==menu_first;
for(var j=0;j<results.length;j++){ //二级菜单
var temp2=results[j];
if(temp2.fatherId==temp1.id){
var item=new Ext.menu.Item({
id:temp2.id,
text:temp2.text,
linkUrl:temp2.loadURL,
handler:onMenuItemClick
})
menu_first.addItem(item);
}
}
// 将该一级菜单添加到菜单栏中
menuBar.add({
text:temp1.text,
menu:menu_first,
iconCls:temp1.iconCls
});
// 增加分割线
menuBar.add('-');
}
menus_index++;
}
// 增加帮助和退出按钮
menuBar.add('->','-',{
text:'帮助',
iconCls: 'help',
tooltip: '查看帮助'
},'-',{
text:'退出',
iconCls: 'logout',
tooltip: '退出'
},'-');
// 菜单项被点击时触发
function onMenuItemClick(item,e){
var tab=contentPanel.getComponent(item.id);
if(!tab){
tab=contentPanel.add({
id:item.id,
title:item.text,
autoScroll:true,
closable:true,
//layout:'fit',
autoLoad:{url:item.linkUrl,scripts:true}
});
}
contentPanel.setActiveTab(tab);
}
}
//中部工作区
var contentPanel = new Ext.TabPanel({
region:'center',
enableTabScroll:true,
activeTab:0,
items:[{
id:'homePage',
title:'首页',
autoScroll:true,
autoLoad:{url:'modules/test/testModule.html', scripts:true}
}]
});
//顶部工作区
var northBox = new Ext.BoxComponent({
region:'north',
el: 'north',
height:100,
items:[menuBar]
});
//viewport
var viewport = new Ext.Viewport({
layout:'border',
items:[northBox, contentPanel]
});
;
我想做一个根据角色权限动态显示toolbar菜单,以下代码是我从互联网上找来的,为什么我的运行不了?好郁闷??高手帮帮我,我刚学ext不久,请问这部分代码
// 2 发送请求,获取菜单
Ext.Ajax.request({
url: 'getMenusForUser.action', //这个action里面返回菜单
success: successCallBack,
failure: failureCallBack
});
没有任何事件触发的情况下也能发出请求吗???我就纠结在这里,我用struts1,写了一个getMenusForUser.action,也不知道对不对,请高手指点指点,好急呀,几天睡不着觉了
Ext.onReady(function(){
Ext.BLANK_IMAGE_URL='ext/resources/images/default/s.gif';
Ext.QuickTips.init();
// 1 创建菜单栏
var menuBar = new Ext.Toolbar();
menuBar.render('menubar');
menuBar.add('-');
// 2 发送请求,获取菜单
Ext.Ajax.request({
url: 'getMenusForUser.action', //这个action里面返回菜单
success: successCallBack,
failure: failureCallBack
});
// 3.加载菜单失败
function failureCallBack(){
Ext.Msg.alert('提示信息','菜单加载失败,请刷新页面');
};
// 3.加载菜单成功
function successCallBack(response){
var results=null;//服务器返回的菜单JSON集
try{
results=Ext.decode(response.responseText);
}catch(ex){
alert(response.responseText);
}
var menus=new Array();
var menus_index=0;
for(var i=0;i<results.length;i++){
var temp1=results[i];
if(temp1.fatherId==0){ //一级菜单
var menu_first=new Ext.menu.Menu({
id:temp1.id
});
menus[menus_index]==menu_first;
for(var j=0;j<results.length;j++){ //二级菜单
var temp2=results[j];
if(temp2.fatherId==temp1.id){
var item=new Ext.menu.Item({
id:temp2.id,
text:temp2.text,
linkUrl:temp2.loadURL,
handler:onMenuItemClick
})
menu_first.addItem(item);
}
}
// 将该一级菜单添加到菜单栏中
menuBar.add({
text:temp1.text,
menu:menu_first,
iconCls:temp1.iconCls
});
// 增加分割线
menuBar.add('-');
}
menus_index++;
}
// 增加帮助和退出按钮
menuBar.add('->','-',{
text:'帮助',
iconCls: 'help',
tooltip: '查看帮助'
},'-',{
text:'退出',
iconCls: 'logout',
tooltip: '退出'
},'-');
// 菜单项被点击时触发
function onMenuItemClick(item,e){
var tab=contentPanel.getComponent(item.id);
if(!tab){
tab=contentPanel.add({
id:item.id,
title:item.text,
autoScroll:true,
closable:true,
//layout:'fit',
autoLoad:{url:item.linkUrl,scripts:true}
});
}
contentPanel.setActiveTab(tab);
}
}
//中部工作区
var contentPanel = new Ext.TabPanel({
region:'center',
enableTabScroll:true,
activeTab:0,
items:[{
id:'homePage',
title:'首页',
autoScroll:true,
autoLoad:{url:'modules/test/testModule.html', scripts:true}
}]
});
//顶部工作区
var northBox = new Ext.BoxComponent({
region:'north',
el: 'north',
height:100,
items:[menuBar]
});
//viewport
var viewport = new Ext.Viewport({
layout:'border',
items:[northBox, contentPanel]
});
;