ExtJS4.x 如何实现下拉树形菜单的效果

ExtJS如何实现下拉树形菜单的效果。据李坏在网上查阅各位大牛在实现该功能的方法时,发现很多人都是自定义一个类库来实现该功能。其实在官方下载的ExtJS版本中已为我们提供了TreePicker.js类库,就是来实现下拉树形菜单的,下面李坏通过一个简单的Demo,为大家抛砖引玉:

1.搭建ExtJS开发环境,目录结构如下:

      李坏这里采用的ExtJS4.x MVC模式的开发方式,下面给出各个文件的代码,这里不做详细解释(如果对ExtJS的mvc模式不熟悉的童鞋

文件index.html:

 代码如下 复制代码

<html>
<head>
    <title>ExtJS4 下拉树菜单</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <link rel="stylesheet" type="text/css" href="extjs4.2/resources/css/ext-all.css">
    <script type="text/javascript" src="extjs4.2/bootstrap.js"></script>
    <script type="text/javascript" src="app.js"></script>
</head>
<body></body>
</html>

文件app.js:

Ext.Loader.setConfig({
    enabled: true
 });
Ext.application({
    name: 'Demo',
    appFolder: 'app',
    controllers: ['Controller'],
    autoCreateViewport: true
});

文件Controller.js:

Ext.define('Demo.controller.Controller', {
    extend: 'Ext.app.Controller',
    views:[
     'Viewport'
    ]
});

文件Viewport.js:

Ext.define('Demo.view.Viewport', {
 extend: 'Ext.container.Viewport',
 margin:'100 0 0 200',
 items:[{
  xtype:'form',
  title:'下拉树菜单',
  height: 500,
  width: 700
 }];
});

到这里我们的开发环境搭建完毕,访问页面,得到一个空表单,效果如下:

2.获取TreePicker类库,在项目中加载该类

      在extjs4.2 examplesux路径下,找到TreePicker.js文件,将该文件放到view文件夹下,目录结构如下:
下拉菜单文件结构目录图" width="245" height="237" size-full="" src="http://www.111cn.net/notfound.jpg" _fcksavedurl="http://www.111cn.net/notfound.jpg" />
      打开TreePicker.js文件,修改代码(该文件的第一行代码):

打开TreePicker.js文件,修改代码(该文件的第一行代码):

Ext.define('Ext.ux.TreePicker', {
为:

 Ext.define('Demo.view.TreePicker', {

注:这里Demo是命名空间,根据自己的实际情况修改。
在Controller中加载TreePicker类库,修改Controller.js后的代码为

 代码如下 复制代码
Ext.define('Demo.controller.Controller', {
    extend: 'Ext.app.Controller',
    views:[
     'Viewport',
        'TreePicker'
    ]
});

3.在Viewport中定义下拉菜单组件,代码如下:

 代码如下 复制代码

Ext.define('Demo.view.Viewport', {
 extend: 'Ext.container.Viewport',
 margin:'100 0 0 200',
 items:[{
  xtype:'form',
  title:'下拉树菜单',
  height: 500,
  width: 700,
  items:[{
   xtype: 'treepicker',
   fieldLabel: '下拉树',
   width: 400,
   labelWidth: 60,
   margin: '100 0 0 150',
   displayField: 'text',
   rootVisible: false,
   value: '',
   minPickerHeight: 200,
   store: Ext.create('Ext.data.TreeStore',{
    fields: ['id','text'],
    root: {
     text: '天朝部门',
     expanded: true
    },
    proxy: {
     type: 'ajax',
     url: 'app/data/tree.json',
     reader: {
      type: 'json'
     }
    }
   })
  }]
 }]
});

效果图:

说明:
      在定义TreePicker组件时,store数据集必须在view视图中定义,不能单独定义store文件,否则不能正常显示,这里是跟常规定义树形菜单组件不同的地方,需要注意!

 

时间: 2024-09-30 03:53:38

ExtJS4.x 如何实现下拉树形菜单的效果的相关文章

DIV下拉式菜单(一)

菜单|下拉 script> var cm=null; document.onclick = new Function("show(null)") function getPos(el,sProp) { var iPos = 0 while (el!=null) { iPos+=el["offset" + sProp] el = el.offsetParent } return iPos } function show(el,m) { if (m) { m.st

用好表单的下拉式菜单

菜单|下拉 用<select>标记可以在表单中方便地插入一个下拉式菜单,以方便用户进行选择,这在制作调查表或用户订单时非常有用,对这种下拉式菜单稍加改造则可以制作出名符其实的下拉式导航菜单. 一.下拉式选择框 这两个示例,外观形式有所不同,但都是用了<select>和<option>标记做出来的,只是设置了不同的参数而已.比较一下它们的源代码,就明白了: 左边的菜单源代码:<select name="select" size="4&q

下拉透明菜单

菜单|透明|下拉 下拉透明菜单 <script language="JavaScript">var mmenus    = new Array();var misShow   = new Boolean(); misShow=false;var misdown   = new Boolean();misdown=false;var mnumberofsub=0;var musestatus=false;var mpopTimer = 0;mmenucolor='#89CB1

CSS+DIV设计实例:纯CSS制作下拉导航菜单

css|菜单|设计|下拉 纯CSS制作的下拉导航菜单-这是一个老外的作品,基本上全是用CSS+HTML写出来的,值得大家学习 以下是引用片段:<style type="text/css">.menu {font-family: verdana, sans-serif; width:750px; position:relative; font-size:0.85em;padding-bottom:250px;}.menu ul {padding:0; margin:0;lis

纯CSS实现超简单的二级下拉导航菜单代码

本文实例讲述了纯CSS实现超简单的二级下拉导航菜单代码.分享给大家供大家参考.具体如下: 这是一款纯CSS菜单,二级下拉导航效果,是最简洁的CSS导航菜单,兼容性也很棒,IE7/8.火狐等都支持,而且它还是学习CSS菜单编写的典型教程,让你学会很多CSS技巧. 运行效果截图如下: 具体代码如下:   复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.

利用.net控件实现下拉导航菜单制作的具体方法

这篇文章介绍了利用.net控件实现下拉导航菜单制作的具体方法,有需要的朋友可以参考一下,希望对你有所帮助   今天的一个小测试是老师让用.NET用控件来制作一个拉菜单要求如下: 将鼠标移到父菜单上弹出3个子菜单,而且每个子菜单都有超链接. 以下是我自己做的代码: 复制代码 代码如下:     <asp:Menu ID="Menu1" runat="server" Orientation="Horizontal" Width="10

ajax读取数据库内容实现二级联动下拉选择菜单示例

本文为大家介绍下使用ajax技术读取数据库内容并生成二级联动下拉选择菜单,具体实现如下,感兴趣的朋友可以参考下,希望对大家有所帮助   复制代码 代码如下: <PRE class=javascript name="code"></PRE><PRE class=javascript name="code">---------------------这是ajax(javascript)代码 ----------------------

javascript实现带下拉子菜单的导航菜单效果

  本文实例讲述了javascript实现带下拉子菜单的导航菜单效果.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

js自动查找select下拉的菜单并选择

 这篇文章主要介绍了js自动查找select下拉的菜单并选择(示例代码)需要的朋友可以过来参考下,希望对大家有所帮助  代码如下: function find_select(name) {  var select = document.getElementsByName(name);  var find_str = document.getElementById('to_find_str').value;  if(select)  {   select = select[0];   var ch