extjs 开始菜单动态生成

11 篇文章 0 订阅
var mArr = [];//这里是保存显示模块的数组

        var _menus = [@Html.Raw(ViewBag.Menu as string)]; //从服务端传来的菜单json  
               //遍历json
        for (var i =0; i < _menus.length; i ++){
            var s = Ext.define('MyDesktop.Menu' + i, {
                extend: 'MyDesktop.BogusModule',
                init : function() {
                    this.launcher = {
                        text: _menus[i].menuname,
                        iconCls: 'bogus',
                        handler: function() {
                            return false;
                        },
                        menu: {
                            items: []
                        }
                    };
                    if(_menus[i].menus != null){
                       for (var j = 0; j < _menus[i].menus.length; j++) {
                            this.launcher.menu.items.push({
                                text: _menus[i].menus[j].menuname,
                                iconCls:'bogus',
                                url: _menus[i].menus[j].url,
                                handler : function(src){
                                    var desktop = this.app.getDesktop();
                                    var win = desktop.getWindow('bogus'+src.windowId);
                                    if(!win){
                                        win = desktop.createWindow({
                                            id: 'bogus'+src.windowId,
                                            title:src.text,
                                            width:850,
                                            height:500,
                                            html : '<iframe style="position:relative;background-color:transparent;" allowtransparency="true" width="100%" height="100%"  frameborder="0" src="' + src.url + '"></iframe>',
                                            iconCls: 'bogus',
                                            animCollapse:false,
                                            constrainHeader:true
                                        });
                                    }
                                    win.show();
                                    return win;
                                },
                                scope: this,
                                windowId: i + j
                            });
                        }
                    };                   
                }
            });
            myArr.push(new s);
        };





自己的实例:

var mArr= [];
    	 Ext.Ajax.request({  
             url :"/gwater/common/cSysMenuAction!getUserRoleMenuByPID.action",    
             method : 'POST', 
             success:function(response){
            	 var obj = eval('(' + response.responseText + ')');
            	 for(var i=0;i<obj.length;i++){
            		 var modulename=obj[i].module.toUpperCase();
            		// alert(modulename);
            		 var moduleClassStr="new MyDesktop."+modulename+"()";
            		 var moduleClass=eval('('+moduleClassStr+')');
            		 mArr.push(moduleClass);
            	 }
            	 //alert(obj.length);
            	 
            	/* for(var i=0;i<obj.length;i++){
            		// alert(obj[i].id+obj[i].name+obj[i].href); 
            		 var s = Ext.define('MyDesktop.Menu' + i, {
		                         extend: 'Ext.ux.desktop.Module',
		                         id:obj[i].id,
		                         init : function(){
		                         	//alert(obj[i].module);
		                             this.launcher = {
		                                 text: obj[i].name,
		                                 iconCls:obj[i].module,
		                                 url:obj[i].href,
		                                 handler : function(win_data){
		                                 	 var desktop = this.app.getDesktop();
		                                      var win = desktop.getWindow(win_data.id);
		                                      if (!win) {
		                                          win = desktop.createWindow({
		                                              id: win_data.id,
		                                              title: win_data.text,
		                                              width: 600,
		                                              height: 400,
		                                              hideMode: 'offsets',
		                                              html: '<iframe style="position:relative;background-color:transparent;" allowtransparency="true" width="100%" height="100%"  frameborder="0" src="/gwater/' + win_data.url + '"></iframe>',
		                                              iconCls: win_data.iconCls,
		                                              animCollapse: false,
		                                              constrainHeader: true
		                                          });
		                                         
		                                      }
		                                      win.show();
		                                      return win;
		                                 },
		                                 scope: this
		                             }
		                         },
		                         createWindow : function(){
	                                	alert(this.id);
	                                    var desktop = this.app.getDesktop();
	                                    var win = desktop.getWindow(this.id);
	                                    if(!win){
	                                        win = desktop.createWindow({
	                                            id: this.id,
	                                            title:this.id,
	                                            width:600,
	                                            height:400,
	                                            iconCls: this.id,
	                                            animCollapse:false,
	                                            border: false,
	                                            hideMode: 'offsets',
	                                            layout: 'fit'
	                                           // html:'<iframe style="position:relative;background-color:transparent;" allowtransparency="true" width="100%" height="100%"  frameborder="0" src="/gwater/' +this.id + '"></iframe>'
	                                        });
	                                    }
	                                    win.show();
	                                    return win;
	                             }
                     
            		 }); 
            		 mArr.push(new s);
            		// alert(mArr.length);
            	 }*/
            	
            	 return [new MyDesktop.QG_GHSB()]; 
             }
    	    
    	 });
    	 alert("wait...");
    	 return mArr; 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值