博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ext.Net动态加载菜单执行事件
阅读量:7023 次
发布时间:2019-06-28

本文共 1456 字,大约阅读时间需要 4 分钟。

下面是今天实际例子,动态加载菜单的代码。非常好用哦

 下面有两种方式添加事件:

MenuItem mi = new Ext.Net.MenuItem(entity.FullName)

                {
                    IconCls = iconCls,
                    Menu =
                        {
                            new Ext.Net.Menu
                            {
                                Items = {
                                  new Ext.Net.MenuItem { IconCls="x-loading-indicator", Text="Loading...", CanActivate=false, HideOnClick=false }
                                },
                                TagString = entity.FullName,
                                Loader = new ComponentLoader
                                {
                                    Mode = LoadMode.Component,
                                    DirectMethod = "#{DirectMethods}.Items",//加载方法
                                    RemoveAll = true,
                                    Params = {//设置调用事件时给的参数
                                        new Ext.Net.Parameter("tag", "this.tag", ParameterMode.Raw),
                                        new Ext.Net.Parameter("id", entity.Id.ToString(), ParameterMode.Raw)
                                    }
                                }
                            }

                        }

                     //第一种方法,在初始时给listeners事件初始
                    // ,Listeners =
                    //{
                    //    Click = { Handler = "loadMenuExample('" + this.UserInfo.GetUserParameter(entity.NavigateUrl) + "','" + entity.Id + "','" + entity.FullName + "','" + iconCls + "');" }
                    //}
                };
                var childList = this.UserModuleList.Where(child => child.ParentId != null && child.ParentId.ToString().Equals(entity.Id.ToString())).OrderBy(child => child.SortCode);
                if (childList.Count() <= 0) //是否有子菜单,如果有不本级菜单不加载事件. 第二种方式:在创建完menuitem时再追加进去事件
                    mi.Listeners.Click.Handler = "loadMenuExample('" + this.UserInfo.GetUserParameter(entity.NavigateUrl) + "','" + entity.Id + "','" + entity.FullName + "','" + iconCls + "');" ;
                items.Add(mi);

 

 

调用的Items方法使用:

 

[DirectMethod]

        public new string Items(Dictionary<string, string> parameters)
        {

            //System.Threading.Thread.Sleep(1500); //emulate net delay

            string tag = parameters["tag"];
            string id = parameters["id"];

 

        }

转载地址:http://cjsxl.baihongyu.com/

你可能感兴趣的文章
马尔科夫链简介
查看>>
VC++ 的MFC 和ATL 及COM 是什么?
查看>>
.NET泛型04,使用Lazy<T>实现延迟加载
查看>>
ASP.NET MVC中的Session以及处理方式
查看>>
想知道美国大学按计算机专业的排名,以及各大学在计算机哪个方面是强项,应该去哪里查找?...
查看>>
[C# 网络编程系列]专题六:UDP编程
查看>>
DNGuard 使用介绍
查看>>
HDU 4419 Colourful Rectangle(线段树)
查看>>
webservice接口的开发和调用
查看>>
Z-order curve
查看>>
用Excel打开csv格式文件并生成相应图形
查看>>
【uTenux实验】内存池管理(固定内存池和可变内存池)
查看>>
Android——Android Studio的一些小技巧(转)
查看>>
Linux Linux程序练习二
查看>>
angular run()运行块
查看>>
如何检测NFC芯片型号?NFC手机即可!
查看>>
Android 8款开源游戏引擎
查看>>
如何推断一个P2P平台是否靠谱?
查看>>
Spring学习【Spring概述】
查看>>
一起学编程(3--组织与表达)
查看>>