【原】提高篇:第九篇,制作树形菜单之三

本节描述在制作的树形菜单上如何点击右键,对一个管理系统而言,这样的功能很绚,或者对一个展示系统而言也是非常新颖的做法. 在树形菜单节点上点右键后就能够弹出如下图所显示的效果,在点某个右键的具体的操作则没有提供相应的代码,主要因为按钮的触发事件较为简单.

下面先看看效果图吧

这个示例是在提高篇第七篇的基础上添加了一个触发右键菜单的一个事件.下面仅仅将页面的脚本代码贴出来,后台代码则是和提高篇第七篇完全一样,所以,本例不再重复贴出来,有兴趣的朋友可以参考提高篇第七篇.

<script type="text/javascript">       
    function makeTree()
    {
        var panel_west = new Ext.Panel
        ({
            id:'panWestMenu',
            region:'center',
            title:'树形菜单之右键示例',
            split:true,
            width: 200,
            collapsible: true,
            margins:'0 0 0 0',
            layout:'accordion',
            layoutConfig:{animate:true}
        });
        var viewport = new Ext.Viewport
        ({
            id:'vpMain',
            layout:'border',
            items:
            [
                panel_west
            ]
        });
        //加载左面的数据
        var loadPanelWest = function(init)
        {
             Ext.Ajax.request
             ({
                    url: 'json.aspx?Param=0',
                    success: function(response, options)
                    {
                        try
                        {
                            var panWestMenu = Ext.getCmp("panWestMenu");
                            if(panWestMenu)
                            {
                                var children = panWestMenu.findByType('panel');
                                if(children)
                                {
                                    for(var i=0, len = children.length; i<len; i++)
                                    {
                                        panWestMenu.remove(children[i],true);
                                    }
                                }
                            }                           
                            var menusArray = Ext.util.JSON.decode(response.responseText);
                           
                            for(var i=0; i<menusArray.length; i++)
                            {
                                var mp = CreateMenuPanel(menusArray[i].TypeTitle,menusArray[i].TypeID);
                                panWestMenu.add(mp);
                            }                           
                            panWestMenu.doLayout();
                        }
                        catch(e)
                        {
                           
                        }
                    }
                });
            };
            loadPanelWest("load");
            //创建单个treePanel
            var CreateMenuPanel = function(title,TypeID)
            {
                  return new Ext.Panel
                  ({
                      title:title,layout:'fit',border: false,frame:true,                    
                      items:
                      [{
                          xtype:'treepanel',singleExpand:true,animate:true,autoScroll:true,containerScroll: true,
                          border: false,
                          width:200,height:370,enableDD:false,dropConfig: {appendOnly:true},                         
                          loader: new Ext.tree.TreeLoader({dataUrl:"json.aspx?Param=1"}),                         
                          root:new Ext.tree.AsyncTreeNode
                          ({
                              id:TypeID,
                              text: title,
                              draggable:false,
                              expanded:true
                             
                          }),
                          listeners:
                          {
                                "contextMenu":
                                function(node,e)
                                {
                                    var treeMenu = new Ext.menu.Menu
                                    ([
                                        {xtype:"button",text:"打开",icon:"images/plugin.gif",pressed:true},
                                        {xtype:"button",text:"添加",icon:"images/plugin.gif",pressed:true},
                                        {xtype:"button",text:"编辑",icon:"images/plugin.gif",pressed:true},
                                        {xtype:"button",text:"隐藏",icon:"images/plugin.gif",pressed:true},
                                        {xtype:"button",text:"删除",icon:"images/plugin.gif",pressed:true}
                                                  
                                    ]);
                                    treeMenu.showAt(e.getPoint());
                                }
                          }
                       }]
                  });
            }
   
    }
    </script>
   
    <script type="text/javascript">
    function ready()
    {
        makeTree();       
    }
    Ext.onReady(ready);
    </script>

 

Tag标签: menu,tree,TreePanel
posted @ 2008-10-28 07:43 殷良胜 阅读(1299) 评论(10)  编辑 收藏 网摘

  回复  引用  查看    
#1楼[楼主]2008-10-30 13:03 | 殷良胜      
  回复  引用    
#2楼2009-01-22 16:10 | 穿云箭[未注册用户]
我想动态改变树的内容
增删改
并让其呈现
不知该怎样实现
望能赐教

  回复  引用    
#3楼2009-01-22 16:38 | 穿云箭[未注册用户]
不是按这种右键功能
而是另用一个文本框和一个按钮进行添加

  回复  引用  查看    
#4楼[楼主]2009-01-24 09:49 | 殷良胜      
@穿云箭
都是可以实现的
但你要从简单的学起呀
你使用一个弹出窗口组件
就可以轻松解决问题了

  回复  引用    
#5楼2009-05-18 16:46 | 刘liu[未注册用户]
大哥 为什么我用你的示例出来后是全屏的啊 不管我怎么搞他要么不出来 一出来就是整个页面都是那颗树 怎么缩小呢
  回复  引用    
#6楼2009-05-18 16:56 | 刘liu[未注册用户]
楼主 有没有时间给我们做一个左边是树右边是grid的例子啊 我发现这个对我们初学者都很需要啊
  回复  引用  查看    
#7楼[楼主]2009-05-18 22:54 | 殷良胜      
--引用--------------------------------------------------
刘liu: 大哥 为什么我用你的示例出来后是全屏的啊 不管我怎么搞他要么不出来 一出来就是整个页面都是那颗树 怎么缩小呢
--------------------------------------------------------
这个例子主要告诉你如何绑定树结构,本身就是全屏的,你没有错

  回复  引用  查看    
#8楼[楼主]2009-05-18 22:55 | 殷良胜      
--引用--------------------------------------------------
刘liu: 楼主 有没有时间给我们做一个左边是树右边是grid的例子啊 我发现这个对我们初学者都很需要啊
--------------------------------------------------------
综合篇--系统框架 有源代码下载
这篇不就是有左边是树右边是grid的例子吗

  回复  引用    
#9楼2009-05-19 09:02 | 刘liu[未注册用户]
那要怎样才不全屏啊
  回复  引用  查看    
#10楼[楼主]2009-05-19 09:43 | 殷良胜      
--引用--------------------------------------------------
刘liu: 那要怎样才不全屏啊
--------------------------------------------------------
博客里有很多这样的例子呀,如:提高篇:第十篇,制作树形菜单之四

发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1320902




相关文章:

相关链接: