热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

extjs中怎样实现动态主菜单的简单介绍

本文目录一览:1、ExtJS中怎样实现动态主菜单

本文目录一览:


  • 1、ExtJS中怎样实现动态主菜单


  • 2、关于Extjs中 gridpanel里我想实现动态的行浮动菜单


  • 3、关于extjs的问题,extjs的导航菜单问题


  • 4、extjs导航面板里面菜单动态生成的怎么做


  • 5、Extjs中如何使用数据库中的数据,创建动态菜单

ExtJS中怎样实现动态主菜单

Ext.Ajax.request({

//后台请求数据

url: 'xxx.php',

success: function (response){

var data = Ext.decode(response.responseText);

//创建空的工具条

var MenuBar = Ext.create('Ext.toolbar.Toolbar');

for(var i=0;ilt;data.length;i++){

var Menu = data[i];

MenuBar.add({

text: Menu.text

handler: 跳转页面函数,一般要传参

});

}

MenuBar.doLayout();

});没有亲测过,也许会有点问题,遇到了再追问吧

关于Extjs中 gridpanel里我想实现动态的行浮动菜单

tip是干啥的啊,就是提示呗,是放在目标上出来的一行提示 。。。 鼠标放tip上有什么用?

想不消失就把目标的mouseout截了啊

恩,浮动菜单可以的,往里加呗

关于extjs的问题,extjs的导航菜单问题

Ext.menu.Menu 对象里的ITEM 有两种类型。1,Ext.menu.Item。2,Ext.menu.Menu的嵌套

你说的3级菜单就是Ext.menu.Menu+Ext.menu.Menu+Ext.menu.Item的嵌套。

具体用add方法添加。

部分代码如下:

var hmenu_copy = new Ext.menu.Menu();

hmenu_copy.add({

text:'level2',

//scope: this,

iconCls:'x-group-by-icon',

menu:[

{text:'level3',handler: },

]

});

由于是项目截码,具体自己加其他环境。还有问题请追加

extjs导航面板里面菜单动态生成的怎么做

ajax请求后台,然后遍历返回结果,每个结果new 一个item,添加到menu就好了

Extjs中如何使用数据库中的数据,创建动态菜单

登录验证 , 然后 将你的菜单返回 , 格式无所谓 , 只要你最后能从JS中解析出来

将菜单加到一个toolbar上

设置菜单的事件

//下面是简单的摘子目前用的的一个例子

/**

 *顶部菜单

 */

Ext.define('XRS.page.bar.Top', {

    extend: 'Ext.toolbar.Toolbar',

    dock: "top",

    border: "1 0 2 0",

    initComponent: function () {

        var me = this;

        //这里是对菜单进行解析 , 因为我从后台返回来的是 列表 , 而不是一个树 , 所以需要解析成 菜单的格式

        //参数$Admin.getMainMenu() 这个是从后台饭回来的数据的一个简单包装 , 在下面我一个样本

var mainMenu = this.parseMenu($Admin.getMainMenu());

me.items = mainMenu;

        this.callParent();

    } , 

    //解析成菜单格式的数据

    parseMenu: function (menus) {

        var me = this;

        if (!(menus  menus.length  0)) return false;

        //根据parentid生成树

        var map = {};

        var rs = [];

        Ext.each(menus, function (n) {

            n.id = "mainmenu_" + n.id;

            n.text = n.name;

            //这里是设置点击事件的 , 通过bind , 不需要设置scope

            n.handler = Ext.bind(me.onClick, me);

            //下面的只是生成一个菜单的数据格式

            map[n.id] = n;

            //如果找到父节点

            if (map["mainmenu_" + n.parentid]) {

                var pn = map["mainmenu_" + n.parentid];

                if (!pn.menu) {

                    pn.hideOnClick = false;

                    pn.menu = {

                        items: []

                    };

                }

                if (n.isSeparator == "1") n.xtype = "menuseparator";

                pn.menu.items.push(n);

            } else {

                if (n.isSeparator == "1") n.xtype = "tbseparator";

                rs.push(n);

            }

        }, this);

        return rs;

    },

    //这是一个点击事件

    onClick: function (menu, e) {

        if (!menu) return;

        //可以任意设置事件

        alert(menu.text);

        //this.fireEvent('moduleclick', menu, 'menu');

    }

});

//下面是个返回的菜单数据样本 , 是个列表

        "mainMenu": [

        {

            "$id": "14",

            "id": 53,

            "name": "基础信息",

            "code": "",

            "menutype": null,

            "module": "",

            "moduleConfig": "          ",

            "method": "          ",

            "isWindow": null,

            "url": null,

            "iconCls": "ico_baseinfo",

            "parentid": 1,

            "path": "1,53",

            "ix": 24,

            "privilege": "6",

            "isSeparator": 0,

            "xtype": null,

            "disabled": null,

            "noprivilege": 0

        },

        {

            "$id": "35",

            "id": 54,

            "name": "系统代码管理",

            "code": "",

            "menutype": null,

            "module": "XRS.baseinfo.code.List",

            "moduleConfig": "          ",

            "method": "          ",

            "isWindow": null,

            "url": null,

            "iconCls": "ico_code",

            "parentid": 53,

            "path": "1,53,54",

            "ix": 1,

            "privilege": "7",

            "isSeparator": 0,

            "xtype": null,

            "disabled": null,

            "noprivilege": 0

        },

        {

            "$id": "36",

            "id": 55,

            "name": null,

            "code": null,

            "menutype": null,

            "module": null,

            "moduleConfig": null,

            "method": null,

            "isWindow": null,

            "url": null,

            "iconCls": null,

            "parentid": 53,

            "path": "1,53,55",

            "ix": 2,

            "privilege": "7",

            "isSeparator": 1,

            "xtype": null,

            "disabled": null,

            "noprivilege": 0

        },

        {

            "$id": "37",

            "id": 57,

            "name": "部门机构",

            "code": "",

            "menutype": null,

            "module": "XRS.baseinfo.organization.List",

            "moduleConfig": "          ",

            "method": "          ",

            "isWindow": null,

            "url": null,

            "iconCls": "ico_org",

            "parentid": 53,

            "path": "1,53,57",

            "ix": 3,

            "privilege": "8",

            "isSeparator": 0,

            "xtype": null,

            "disabled": null,

            "noprivilege": 0

        },

        {

            "$id": "38",

            "id": 58,

            "name": "用户",

            "code": "",

            "menutype": null,

            "module": "XRS.baseinfo.user.List",

            "moduleConfig": "          ",

            "method": "          ",

            "isWindow": null,

            "url": null,

            "iconCls": "ico_user",

            "parentid": 53,

            "path": "1,53,58",

            "ix": 4,

            "privilege": "9",

            "isSeparator": 0,

            "xtype": null,

            "disabled": null,

            "noprivilege": 0

        },

        {

            "$id": "39",

            "id": 59,

            "name": "角色",

            "code": "",

            "menutype": null,

            "module": "XRS.baseinfo.role.List",

            "moduleConfig": "          ",

            "method": "          ",

            "isWindow": null,

            "url": null,

            "iconCls": "ico_role",

            "parentid": 53,

            "path": "1,53,59",

            "ix": 5,

            "privilege": "10",

            "isSeparator": 0,

            "xtype": null,

            "disabled": null,

            "noprivilege": 0

        }]


推荐阅读
  • 用Vue实现的Demo商品管理效果图及实现代码
    本文介绍了一个使用Vue实现的Demo商品管理的效果图及实现代码。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 在编写业务代码时,常常会遇到复杂的业务逻辑导致代码冗长混乱的情况。为了解决这个问题,可以利用中间件模式来简化代码逻辑。中间件模式可以帮助我们更好地设计架构和代码,提高代码质量。本文介绍了中间件模式的基本概念和用法。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • 本文讨论了一个关于正则的困惑,即为什么一个函数会获取parent下所有的节点。同时提出了问题是否是正则表达式写错了。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • 本文总结了在开发中使用gulp时的一些技巧,包括如何使用gulp.dest自动创建目录、如何使用gulp.src复制具名路径的文件以及保留文件夹路径的方法等。同时介绍了使用base选项和通配符来保留文件夹路径的技巧,并提到了解决带文件夹的复制问题的方法,即使用gulp-flatten插件。 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文介绍了如何使用elementui分页组件进行分页功能的改写,只需一行代码即可调用。通过封装分页组件,避免在每个页面都写跳转请求的重复代码。详细的代码示例和使用方法在正文中给出。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 本文详细介绍了Android中的坐标系以及与View相关的方法。首先介绍了Android坐标系和视图坐标系的概念,并通过图示进行了解释。接着提到了View的大小可以超过手机屏幕,并且只有在手机屏幕内才能看到。最后,作者表示将在后续文章中继续探讨与View相关的内容。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 微信官方授权及获取OpenId的方法,服务器通过SpringBoot实现
    主要步骤:前端获取到code(wx.login),传入服务器服务器通过参数AppID和AppSecret访问官方接口,获取到OpenId ... [详细]
author-avatar
梧桐树信息科技
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有