效果图:
Ext.menu.ColumnMenu类
/**
* @class Ext.menu.ColumnMenu
* @extends Ext.menu.Menu
* 列布局菜单
* @xtype columnmenu
*/
Ext.menu.ColumnMenu = function(config) {
Ext.menu.ColumnMenu.superclass.constructor.call(this, config);
var cols = [];
Ext.each(this.columns, function(c) {
cols.push(Ext.apply(c, {
xtype: 'menu',
hidden: false,
hideMode: 'display',
floating: false
}));
}, this);
this.colCt = new Ext.Container({
layout: 'column',
width: this.menuWidth,
items: cols
});
this.add(this.colCt);
};
Ext.extend(Ext.menu.ColumnMenu, Ext.menu.Menu, {
cls: 'x-columnmenu',
layout: {
type: 'menu',
itemTpl: new Ext.XTemplate('<li id="{itemId}" class="{itemCls}"></li>')
},
/**
* @cfg {Number} menuWidth 菜单宽度,默认300px
*/
menuWidth: 300,
/**
* @cfg {Array} columns 菜单列
*/
beforeDestroy: function() {
this.colCt.destroy();
}
});
Ext.reg('columnmenu', Ext.menu.ColumnMenu);
测试页面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ColumnMenu Example</title>
<!-- ** CSS ** -->
<!-- base library -->
<link rel="stylesheet" type="text/css" href="../extjs/resources/css/ext-all.css" />
<!-- Common Styles for the examples -->
<link rel="stylesheet" type="text/css" href="../shared/examples.css"/>
<!-- ** Javascript ** -->
<!-- ExtJS library -->
<script type="text/javascript" src="../extjs/adapter/ext/ext-base-debug.js"></script>
<script type="text/javascript" src="../extjs/ext-all-debug.js"></script>
<script type="text/javascript" src="../extjs/locale/ext-lang-zh_CN.js"></script>
<!-- extensions -->
<!-- page specific -->
<script type="text/javascript" src="columnmenu.js"></script>
</head>
<body>
<h1>Ext.menu.ColumnMenu</h1>
<div style="border: 3px solid #C3DAF9; height: 300px; width: 650px;">
<div id="toolbar"></div>
</div>
<br /><br /><br /><br /><br />
</body>
</html>
测试样例JS
Ext.onReady(function() {
Ext.QuickTips.init();
var menu = new Ext.menu.ColumnMenu({
menuWidth: 400,
columns: [{
columnWidth: .33,
items: [{
text: 'I like Ext',
handler: onItemClick
}, {
text: 'I like Ext',
handler: onItemClick
}, {
text: 'I like Ext',
handler: onItemClick
}, {
text: 'I like Ext',
handler: onItemClick
}]
}, {
columnWidth: .33,
items: [{
text: 'Aero Glass',
checked: true,
group: 'theme',
checkHandler: onItemCheck
}, {
text: 'Vista Black',
checked: false,
group: 'theme',
checkHandler: onItemCheck
}, {
text: 'Gray Theme',
checked: false,
group: 'theme',
checkHandler: onItemCheck
}, {
text: 'Default Theme',
checked: false,
group: 'theme',
checkHandler: onItemCheck
}]
}, {
columnWidth: .33,
items: [{
text: '<b>Bold</b>',
handler: onItemClick
}, {
text: '<i>Italic</i>',
handler: onItemClick
}, {
text: '<u>Underline</u>',
handler: onItemClick
}]
}]
});
var tb = new Ext.Toolbar();
tb.render('toolbar');
tb.add({
text: 'Button w/ Menu',
menu: menu
});
tb.doLayout();
function onItemClick(item) {
msg('Menu Click', 'You clicked the "{0}" menu item.', item.text);
}
function onItemCheck(item, checked) {
msg('Item Check', 'You {1} the "{0}" menu item.', item.text, checked ? 'checked' : 'unchecked');
}
var msgCt;
function createBox(t, s) {
return ['<div class="msg">', '<div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div>', '<div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc"><h3>', t, '</h3>', s, '</div></div></div>', '<div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>', '</div>'].join('');
}
function msg(title, format) {
if (!msgCt) {
msgCt = Ext.DomHelper.insertFirst(document.body, {
id: 'msg-div'
}, true);
}
msgCt.alignTo(document, 't-t');
var s = String.format.apply(String, Array.prototype.slice.call(arguments, 1));
var m = Ext.DomHelper.append(msgCt, {
html: createBox(title, s)
}, true);
m.slideIn('t').pause(1).ghost("t", {
remove: true
});
}
});
分享到:
相关推荐
它提供了丰富的组件库,包括表格、窗口、面板、菜单等,而`Ext.ux.form.LovCombo`就是EXTJS生态系统中的一员。 在压缩包子文件的文件名称列表中提到的"extjs下拉",很可能包含了EXTJS下拉框相关的示例代码、样式...
- **多次操作时效率较低**:如果需要对同一个DOM元素进行多次操作,则每次调用`Ext.fly`都会重新创建`Ext.Element`对象,不如`Ext.get`高效。 #### 使用场景分析 - 当需要对DOM元素进行频繁操作时,推荐使用`Ext....
总结起来,`ext.ux.menu.storemenu.zip` 提供了一个基于 ExtJS 的动态菜单解决方案,它利用了数据存储的功能来创建可扩展和动态的菜单系统。这个组件对于那些需要根据用户角色、权限或动态数据来构建菜单的 Web 应用...
### Ext.data.Store的基本用法详解 #### 一、Ext.data.Store简介 `Ext.data.Store`是ExtJS框架中用于管理数据的核心组件之一。它主要负责数据的存储、加载、更新等操作,并且提供了多种方法来方便地处理这些数据。...
在阅读《Ext_Core手册.pdf》时,可以深入研究EXTJS的核心概念和API,了解更多关于`Ext.get`和`Ext.fly`的底层实现以及它们在不同场景下的应用策略。同时,理解EXTJS中的`Element`类和DOM操作对于提升EXTJS应用的性能...
2. `checkbox`:`Ext.form.Checkbox`是用于创建复选框的组件,用户可以选择或取消选择多个选项。 3. `combo`:`Ext.form.ComboBox`是下拉列表框组件,允许用户在预设的选项中进行选择,同时可以提供搜索功能以便...
org.restlet.ext.spring.jar
`Ext.ux.SwfUploadPanel.js`是这样一个基于ExtJS和SwfUpload技术的插件,它实现了多文件上传的功能。这篇文章将深入探讨这个插件的工作原理、主要特点以及如何在实际项目中应用。 首先,`ExtJS`(全称为EXT ...
在Ext.js中,`Ext.Store`是用来管理数据的类,它通常与各种UI组件(如Grid、ComboBox等)关联,用于存储和检索数据。然而,获取`Ext.Store`的方式并不像获取其他Ext组件那样直接,因为Store并不是一个具有可视界面的...
Ext.js 是一个强大的JavaScript库,专门用于构建富客户端的Web应用程序。它提供了丰富的用户界面组件和数据绑定功能,使得开发者可以构建出具有桌面应用级别的交互式网页应用。本教程和API文档聚焦于Ext.js 3.0版本...
在EXTJS这个强大的JavaScript框架中,`Ext.Panel`和`TreePanel`是两个非常重要的组件,它们被广泛用于构建复杂的用户界面。这篇文章将探讨如何在这些组件中动态加载本地页面数据,以提升用户体验并实现灵活的数据...
在Ext JS这个强大的JavaScript框架中,`Ext.Window`是一个常用组件,用于创建浮动、可弹出的窗口。在Web应用程序中,我们常常需要在这些窗口中展示各种内容,包括文字、表格、按钮,当然还有图片。本文将详细介绍...
EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档...
运行Microsoft office时,vbe6ext.olb不能加载
4. **右键菜单**:实现右键菜单(Ext.menu.Menu),定义菜单项,绑定点击事件处理函数。 5. **事件监听**:监听TreePanel的`contextmenu`事件,当用户右键点击节点时触发,显示右键菜单。 6. **数据库操作**:在...
环境:Window XP Sp2、Tomcat 6.0、...关于Ext.data.Store类,我们可以看出:该框架提供了客户端缓存的功能--这对于我们框架系统是非常有帮助的。本示例代码注释非常详细。 阅读对象:需要使用Ext框架进行Web开发的人员
标题 "fp40ext.dll无法加载安装程序库" 描述了一个常见的系统错误,涉及的是一个动态链接库(DLL)文件fp40ext.dll在尝试执行或加载时出现问题。DLL文件是Windows操作系统中的一种共享库,它包含了一系列可供多个...
在本示例中,"EXT dojochina文本框示例Ext.form.TextField.rar"是一个压缩包,包含了EXT框架中关于`Ext.form.TextField`组件的示例代码。 `Ext.form.TextField`是EXT框架中的一个核心组件,用于创建基本的输入字段...
### Ext.window从右下角弹出/隐藏:深入解析与实现 #### 一、概述 在Web应用开发中,为了提升用户体验,开发者经常会利用各种UI框架来实现丰富的交互效果。ExtJS作为一款成熟且功能强大的JavaScript框架,在这方面...