开始学习ExtJs4,陆续记录学习过程,希望有所用处:
特别注意:在这里有些写法还是沿用之前版本,效果依然能够出来,当时最好进行改动,例如new可以改为Ext.create
一、基础知识
1、JAON对象的例子
- <script type="text/javascript">
- var person = { //json对象定义开始
- name:'tom', //字符串
- age:24, //数字
- sex:'man',
- married:false,//布尔值
- books:[ //数组,在数组中又嵌入了两个json对象
- {name:'历史',price:30},
- {name:'文学',price:25}
- ]
- }//json对象定义结束
- //通过点号表示法来取得JSON对象的内部属性
- alert(person.name + ' ' + person.age + ' ' + person.sex);
- //通过中括号表示法来取得JSON对象的内部属性
- //alert(person["name"] + ' ' + person["age"] + ' ' + person["sex"]);
- </script>
2、逗号分隔参数列表配置组件的例子
- Ext.Msg.alert('提示','逗号分隔参数列表');//这种配置方式非常常见
3、JSON对象配置组件的例子
- Ext.onReady(function(){
- var config = {//定义配置对象
- title:'case01',
- msg: '我的配置很简单,不信来看看我的源代码吧!'
- }
- Ext.Msg.show(config);//将配置对象传入方法中
- });
4、支持HTML格式化的Extjs信息提示框的例子
- Ext.onReady(function(){
- Ext.Msg.alert('提示','<font color=red>支持HTML格式文本</font>');
- });
5、Ext.MessageBox的各种不同用法相关
- Ext.onReady(function(){
- //Ext.MessageBox.alert('提示','请单击我,确定',callBack);
- Ext.MessageBox.show({
- title: '提示',
- msg: '请单击我,确定',
- buttons: Ext.MessageBox.OKCANCEL,
- fn: callBack
- });
- function callBack(id){
- alert('单击的按钮ID是:'+id);
- }
- Ext.onReady(function(){
- Ext.MessageBox.confirm('提示','请单击我,做出选择',callBack);
- function callBack(id){
- alert('单击的按钮ID是:'+id);
- }
- });
- Ext.onReady(function(){
- Ext.MessageBox.prompt('提示','输入一些内容看看:',callBack,this,true,"我是默认值");
- function callBack(id,msg){
- alert('单击的按钮ID是:'+id+'\n'+'输入的内容是:'+msg);
- }
- });
- Ext.MessageBox.show({
- title:'提示',
- msg:'我有三个按钮,和一个多行文本区。',
- modal:true,
- prompt:true,
- value:'请输入',
- fn:callBack,
- buttons:Ext.Msg.YESNOCANCEL,
- icon:Ext.Msg.QUESTION
- })
- function callBack(id,msg){
- alert('单击的按钮ID是:'+id+'\n'+'输入的内容是:'+msg);
- }
- //'ok'
- Ext.MessageBox.msgButtons[0].setText('确定');
- //'yes'
- Ext.MessageBox.msgButtons[1].setText('是');
- //'no'
- Ext.MessageBox.msgButtons[2].setText('否');
- //'cancel'
- Ext.MessageBox.msgButtons[3].setText('取消');
- Ext.MessageBox.show({
- title:'提示',
- msg:'自定义按钮文字',
- modal:true,
- buttons:Ext.Msg.YESNOCANCEL
- });
- //多次设置信息提示框按钮文字//'ok'
- Ext.MessageBox.msgButtons[0].setText('确认按钮');//第一次设置
- Ext.MessageBox.alert('提示','提示信息一',function(){
- Ext.MessageBox.msgButtons[0].setText('新的确认按钮');//第二次设置
- Ext.MessageBox.alert('提示','提示信息二');
- });
- //通过调用updateText方法定时更新提示信息
- var msgBox = Ext.MessageBox.show({
- title:'提示',
- msg:'动态跟新的信息文字',
- modal:true,
- buttons:Ext.Msg.OK,
- fn:function(){
- //停止定时任务
- Ext.TaskManager.stop(task);
- }
- })
- //Ext.TaskManager是一个功能类,用来定时执行程序,
- //在这里我们使用它来定时触发提示信息的更新。
- var task = {
- run:function(){
- msgBox.updateText('会动的时间:'+Ext.util.Format.date(new Date(),'Y-m-d g:i:s A'));
- },
- interval:1000
- }
- Ext.TaskManager.start(task);
- //通过调用updateProgress方法同时更新提示信息和进度条
- var msgBox = Ext.MessageBox.show({
- title:'提示',
- msg:'动态跟新的进度条和信息文字',
- modal:true,
- width:300,
- progress:true
- })
- var count = 0;//滚动条被刷新的次数
- var percentage = 0;//进度百分比
- var progressText = '';//进度条信息
- var task = {
- run:function(){
- count++;
- //计算进度
- percentage = count/10;
- //生成进度条文字
- progressText = '当前完成度:'+percentage*100 + "%";
- //更新信息提示对话框
- msgBox.updateProgress(percentage,progressText,
- '当前时间:'+Ext.util.Format.date(new Date(),'Y-m-d g:i:s A'));
- //刷新10次后关闭信息提示对话框
- if(count > 10){
- Ext.TaskManager.stop(task);
- msgBox.hide();
- }
- },
- interval:1000
- }
- Ext.TaskManager.start(task);
- //等待提示框会显示一个自动更新的进度条
- Ext.MessageBox.wait('请等待,操作需要很长时间!','提示',{
- text : '进度条上的文字'
- });
6、进度条的使用
- //手动模式的进度条
- var ProgressBar = new Ext.ProgressBar({
- width:300,//设定进度条的宽度
- renderTo:'ProgressBar'
- });
- var count = 0;//滚动条被刷新的次数
- var percentage = 0;//进度百分比
- var progressText = '';//进度条信息
- Ext.TaskManager.start({
- run:function(){
- count++;
- //刷新10次后关闭信息提示对话框
- if(count > 10){
- ProgressBar.hide();
- }
- //计算进度
- percentage = count/10;
- progressText = percentage * 100 + '%'
- //更新信息提示对话框
- ProgressBar.updateProgress(percentage,progressText,true);
- },
- interval:1000,//设置时间间隔
- repeat : 6//设置执行次数
- });
- //自动模式的进度条
- var ProgressBar = new Ext.ProgressBar({
- width:300,//设定进度条的宽度
- renderTo:'ProgressBar'
- });
- ProgressBar.wait({
- duration:10000,//进度条持续更新10秒钟
- interval:1000,//每1秒钟更新一次
- increment:10,//进度条分10次更新完毕
- scope:this,//回调函数的执行范围
- text : 'waiting',//进度条上的文字
- fn:function(){//更新完成后调用的回调函数
- alert('更新完毕');
- }
- });
- <STYLE TYPE="text/css">
- .custom .x-progress-inner {
- height:17px;
- background: #fff;
- }
- .custom .x-progress-bar {
- height:15px;
- background:transparent url(images/custom-bar-red.gif) repeat-x 0 0;
- border-top:1px solid #BEBEBE;
- border-bottom:1px solid #EFEFEF;
- border-right:0;
- }
- </STYLE>
- //自定义样式的进度条样式
- var ProgressBar = new Ext.ProgressBar({
- width:300,//设定进度条的宽度
- renderTo:'ProgressBar',
- cls:'custom'//使用自定义样式
- });
- ProgressBar.wait({
- duration:10000,//进度条持续更新10秒钟
- interval:1000,//每1秒钟更新一次
- increment:10//进度条分10次更新完毕
- });
7、工具栏、菜单栏相关
- //简单的工具栏
- var toolbar = new Ext.toolbar.Toolbar({//创建工具栏
- renderTo:'toolbar',
- width:300
- });
- toolbar.add([//向工具栏中添加按钮
- {
- text:'新建',//按钮上显示的文字
- handler:onButtonClick,//点击按钮的处理函数
- iconCls:'newIcon'//在按钮上显示的图标
- },
- {text:'打开',handler:onButtonClick,iconCls:'openIcon'},
- {text:'保存',handler:onButtonClick,iconCls:'saveIcon'}
- ]);
- function onButtonClick(btn){//点击按钮时调用的处理函数
- alert(btn.text);//取得按钮上的文字
- }
- //使用add方法加入多种元素的复杂工具栏
- var toolbar = new Ext.toolbar.Toolbar({//创建工具栏
- renderTo:'toolbar',
- width:500
- });
- toolbar.add(
- {text:'新建'},{text:'打开'},
- {text:'编辑'},{text:'保存'}, //加入按钮
- '-', //加入工具栏分隔符
- { //加入表单元素
- xtype:'textfield',
- hideLabel : true,
- width:150
- },
- '->', //加入一个充满工具栏的空白元素
- '<a href=#>超连接</div>', //加入一个Element元素
- {xtype: 'tbspacer', width: 50},//加入一个空白元素,宽度为50像素
- '静态文本' //加入一个简单字符串
- );
- <HTML>
- <HEAD>
- <TITLE>启用和禁用工具栏</TITLE>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <link rel="stylesheet" type="text/css" href="../../ext-4.0/resources/css/ext-all.css" />
- <script type="text/javascript" src="../../ext-4.0/bootstrap.js"></script>
- <script type="text/javascript" src="../../ext-4.0/locale/ext-lang-zh_CN.js"></script>
- <script type="text/javascript">
- Ext.onReady(function(){
- var toolbar = new Ext.toolbar.Toolbar({//创建工具栏
- renderTo:'toolbar',
- width:200,
- items :[{
- text:'新建',//按钮上显示的文字
- handler:onButtonClick//点击按钮的处理函数
- },
- {text:'打开',handler:onButtonClick},
- {text:'保存',handler:onButtonClick}]
- });
- function onButtonClick(btn){//点击按钮时调用的处理函数
- alert(btn.text);//取得按钮上的文字
- }
- Ext.get('enabledBtn').on('click',function(){
- //启用工具栏
- toolbar.enable();
- });
- Ext.get('disabledBtn').on('click',function(){
- //禁用工具栏
- toolbar.disable();
- });
- });
- </script>
- </HEAD>
- <BODY STYLE="margin: 10px">
- <div id='toolbar'></div>
- <input type=button value='启用工具栏' id='enabledBtn'>
- <input type=button value='禁用工具栏' id='disabledBtn'>
- </BODY>
- </HTML>
- <HTML>
- <HEAD>
- <TITLE>简单的菜单栏</TITLE>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <link rel="stylesheet" type="text/css" href="../../ext-4.0/resources/css/ext-all.css" />
- <script type="text/javascript" src="../../ext-4.0/bootstrap.js"></script>
- <script type="text/javascript" src="../../ext-4.0/locale/ext-lang-zh_CN.js"></script>
- <script type="text/javascript">
- Ext.onReady(function(){
- var toolbar = new Ext.toolbar.Toolbar({//创建工具栏
- renderTo:'toolbar',
- width:300
- });
- var fileMenu = new Ext.menu.Menu({//文件创建菜单
- shadow : 'frame',//设置菜单四条边都有阴影
- allowOtherMenus : true,
- items : [
- new Ext.menu.Item({
- text: '新建',//菜单项名称
- menuHideDelay:1000,
- handler:onMenuItem//菜单项处理函数
- }),//添加菜单项
- {text: '打开',handler:onMenuItem},
- {text: '关闭',handler:onMenuItem}
- ]
- });
- var editMenu = new Ext.menu.Menu({//编辑创建菜单
- shadow : 'drop',//设置菜单在右下两条边有阴影
- allowOtherMenus : true,
- items : [
- {text: '复制',handler:onMenuItem},//添加菜单项
- {text: '粘贴',handler:onMenuItem},
- {text: '剪切',handler:onMenuItem}
- ]
- });
- toolbar.add(
- {text : '文件', menu : fileMenu},//将菜单加入工具栏
- {text : '编辑', menu : editMenu}
- );
- function onMenuItem(item){//菜单项的回调方法
- alert(item.text);//取得菜单项的text属性
- }
- });
- </script>
- </HEAD>
- <BODY STYLE="margin: 10px">
- <div id='toolbar'></div>
- </BODY>
- </HTML>
- <HTML>
- <HEAD>
- <TITLE>多级菜单栏</TITLE>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <link rel="stylesheet" type="text/css" href="../../ext-4.0/resources/css/ext-all.css" />
- <script type="text/javascript" src="../../ext-4.0/bootstrap.js"></script>
- <script type="text/javascript" src="../../ext-4.0/locale/ext-lang-zh_CN.js"></script>
- <script type="text/javascript">
- Ext.onReady(function(){
- var Toolbar = new Ext.toolbar.Toolbar({//创建工具栏
- renderTo:'toolbar',
- width:300
- });
- var infoMenu = new Ext.menu.Menu({//一级菜单
- ignoreParentClicks : true,//忽略父菜单的单击事件
- plain : true,
- items : [
- {
- text: '个人信息',
- menu: new Ext.menu.Menu({//二级菜单
- ignoreParentClicks : true,//忽略父菜单的单击事件
- items:[
- {
- text: '基本信息',
- menu : new Ext.menu.Menu({//三级菜单
- items:[
- {text: '身高',handler:onMenuItem},
- {text: '体重',handler:onMenuItem}
- ]
- })}
- ]
- })
- },//添加菜单项
- {text: '公司信息'}
- ]
- });
- Toolbar.add(
- {text : '设置', menu : infoMenu}//将菜单加入工具栏
- );
- function onMenuItem(item){//选择菜单项的处理函数
- alert(item.text);//取得菜单项的text属性
- }
- });
- </script>
- </HEAD>
- <BODY STYLE="margin: 10px">
- <div id='toolbar'></div>
- </BODY>
- </HTML>
- <HTML>
- <HEAD>
- <TITLE>将更多组件加入菜单</TITLE>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <link rel="stylesheet" type="text/css" href="../../ext-4.0/resources/css/ext-all.css" />
- <STYLE TYPE="text/css">
- .userManagerIcon { background-image: url(images/userManager.gif) !important; }
- .newIcon { background-image: url(images/new.gif) !important; }
- .openIcon { background-image: url(images/open.gif) !important; }
- .saveIcon { background-image: url(images/save.gif) !important; }
- </STYLE>
- <script type="text/javascript" src="../../ext-4.0/bootstrap.js"></script>
- <script type="text/javascript" src="../../ext-4.0/locale/ext-lang-zh_CN.js"></script>
- <script type="text/javascript">
- Ext.onReady(function(){
- var Toolbar = new Ext.toolbar.Toolbar({//创建工具栏
- renderTo:'toolbar',
- width:300
- });
- var fileMenu = new Ext.menu.Menu({//文件创建菜单
- items : [{
- xtype : 'textfield',//创建表单字段
- hideLabel: true,
- width : 100
- },{
- text:"颜色选择",
- menu : new Ext.menu.ColorPicker()
- },
- {xtype: 'datepicker'},//添加日期选择器组件
- {
- xtype: 'buttongroup',//添加按钮组组件
- columns: 3,
- title: '按钮组',
- items: [{
- text: '用户管理',
- scale: 'large',
- colspan : 3,
- width : 170,
- iconCls: 'userManagerIcon',
- iconAlign: 'top'
- },{
- text: '新建', iconCls: 'newIcon'
- },{
- text: '打开', iconCls: 'openIcon'
- },{
- text: '保存', iconCls: 'saveIcon'
- }]
- }
- ]
- });
- Toolbar.add(
- {text : '文件', menu : fileMenu}//将菜单加入工具栏
- );
- });
- </script>
- </HEAD>
- <BODY STYLE="margin: 10px">
- <div id='toolbar'></div>
- </BODY>
- </HTML>
- <HTML>
- <HEAD>
- <TITLE>具有选择框的菜单</TITLE>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <link rel="stylesheet" type="text/css" href="../../ext-4.0/resources/css/ext-all.css" />
- <script type="text/javascript" src="../../ext-4.0/bootstrap.js"></script>
- <script type="text/javascript" src="../../ext-4.0/locale/ext-lang-zh_CN.js"></script>
- <script type="text/javascript">
- Ext.onReady(function(){
- var toolbar = new Ext.toolbar.Toolbar({//创建工具栏
- renderTo:'toolbar',
- width:300
- });
- var themeMenu = new Ext.menu.Menu({//文件创建菜单
- items : [{
- text:'主题颜色',
- menu:new Ext.menu.Menu({
- items:[{
- text: '红色主题',
- checked: true,//初始为选中状态
- group: 'theme',//为单选项进行分组
- checkHandler: onItemCheck
- },{
- text: '蓝色主题',
- checked: false,//初始为未选中状态
- group: 'theme',
- checkHandler: onItemCheck
- },{
- text: '黑色主题',
- checked: false,
- group: 'theme',
- checkHandler: onItemCheck
- }]
- })
- },{
- text:'是否启用',
- checked : false
- }]
- });
- toolbar.add(
- {text : '风格选择', menu : themeMenu}//将菜单加入工具栏
- );
- function onItemCheck(item){//菜单项的回调方法
- alert(item.text);//取得菜单项的text属性
- }
- });
- </script>
- </HEAD>
- <BODY STYLE="margin: 10px">
- <div id='toolbar'></div>
- </BODY>
- </HTML>
相关推荐
### ExtJS4基础教程知识点 #### 1. ExtJS4开发环境搭建 ExtJS4是使用JavaScript进行开发的框架,专门用于构建富互联网应用(RIA)。搭建ExtJS开发环境需要预先安装一些软件和配置开发环境。以下步骤详细介绍了如何...
该ppt参照extjs4书籍及extjs官网中示例编写而成。能够帮助大家了解extjs4.
**一、ExtJS 4基础知识** 1. **组件模型**:ExtJS 4基于组件模型,允许开发者通过组合各种UI组件(如按钮、文本框、表单等)来构建复杂的用户界面。 2. **布局管理器**:它负责调整组件的大小和位置,以适应不同的...
EXTJS4自学手册——EXT文件目录,本地加载文档,命名规范 EXTJS4自学手册——EXT基本方法、属性(onReady、define、create) EXTJS4自学手册——EXT基本方法、属性(apply、applyIf、constructor) EXTJS4自学手册...
EXTJS4 是一款强大的JavaScript框架,用于构建富客户端Web应用程序。EXTJS4的学习文档旨在帮助开发者掌握这一框架,尤其对于初学者来说,提供了宝贵的资源。文档中包含了从环境配置到实际应用开发的基础步骤。 首先...
在开始使用ExtJS4进行开发之前,我们需要做一些基础的准备工作,确保开发环境已经搭建好,并且能够顺利地运行第一个ExtJS4程序。 ##### 1. 浏览器兼容性 ExtJS4支持大部分主流浏览器,包括从IE6到最新版本的Chrome...
ExtJS4是一款强大的JavaScript框架,主要用于构建富客户端的Web应用程序。它提供了丰富的组件库,包括数据绑定、模型、视图、控制器等概念,使得开发者能够创建功能丰富的、交互性强的前端应用。本资源包主要涵盖了...
本文将详细介绍如何搭建ExtJS4的开发环境。 首先,你需要下载ExtJS4的版本。ExtJS4.x的发布包含了多个版本,例如4.0、4.1、4.2等,根据项目需求选择适合的版本进行下载。下载完成后,解压缩文件到本地文件系统中。 ...
这个主题继承自ExtJS4的经典(Classic)主题,这意味着它在保持原有组件结构的基础上,对颜色、字体、边框等视觉元素进行了深度定制,以呈现出深蓝色调的界面风格。经典主题是ExtJS4提供的基础主题之一,包含了大...
EXTJS4是一款强大的JavaScript框架,主要用于构建富客户端Web应用程序。这个框架由Sencha公司开发,提供了丰富的组件库、数据管理、强大的布局系统以及高度可定制的界面。在本压缩包中,你将找到EXTJS4的官方示例和...
通过深入学习并掌握这些文档,开发者不仅能理解ExtJS4的基础概念,还能熟练地运用到实际项目中,构建出功能丰富、性能优异的Web应用。无论你是初学者还是经验丰富的开发者,这套文档都会是你编程旅程中的得力助手。
在深入探讨ExtJS 4的基础知识之前,首先确保你已经下载了ExtJS 4.21版本,并将其部署到服务器的适当路径以便访问。 **一、表单(Form)** 在ExtJS中,表单是数据输入和验证的重要部分。表单组件包括文本框、复选框...
ExtJS4是一款强大的JavaScript库,专门用于构建富客户端应用程序。TreeGrid是ExtJS中的一个组件,结合了树形视图和表格的优点,可以用来展示层次结构的数据并支持数据的排序、筛选和操作。在本实例中,我们关注的是...
在IT行业中,SSH+EXTJS4的整合开发是一种常见的前端与后端技术栈结合,用于构建功能丰富的Web应用程序。SSH代表Spring、Struts和Hibernate,它们分别是Java领域中用于处理不同层面的三个核心框架:Spring提供了依赖...
本指南涵盖了从获取Extjs4到搭建学习环境、创建首个应用以及掌握关键API和布局管理的基础知识。通过实践这些示例代码,相信读者能够更快地理解和掌握Extjs4的核心概念和技术要点。同时,鼓励读者参考官方文档进行...
### 一、Extjs4 FormPanel基础 在开始之前,我们先简单回顾一下Extjs4中FormPanel的基本概念及其主要用途。`Ext.form.Panel`是Extjs4提供的一个用于创建复杂表单的组件。它允许开发者构建包含多个输入字段、按钮...
ExtJS4是一个强大的JavaScript框架,主要用于构建富客户端的Web应用程序。它提供了丰富的组件库和一套完整的MVC...在实践中不断学习和练习,你将能够熟练掌握ExtJS4的MVC模式,为开发高质量的Web应用打下坚实基础。
标题“Extjs4 桌面效果优化”指的是开发者对官方提供的ExtJS 4桌面主题进行了定制和改进,以满足更丰富的功能需求或视觉效果。通常,这样的优化可能包括以下方面: 1. **自定义图标和样式**:开发者可能更换了默认...
Extjs4是Sencha公司推出的一个用于开发富互联网应用程序(RIA)的JavaScript框架。它为开发者提供了丰富的界面组件和插件,以及一套完整的前端开发工具和库,是企业级应用开发中常用的前端技术之一。在本文中,我们...