Ext-JS概述(工作原理)
javascript工作原理
javascript工作原理JavaScript 是一种脚本编程语言,用于为网页添加交互性。
它的工作原理可以概括如下:1. 引入 JavaScript:在 HTML 文件中使用 `<script>` 标签引入JavaScript 代码。
可以将 JavaScript 代码嵌入到 HTML 文件中,也可以通过外部脚本文件进行引入。
2. 解析和执行:当浏览器加载 HTML 文件时,遇到 JavaScript 代码时会对其进行解析,并使用 JavaScript 引擎执行。
3. DOM 操作:JavaScript 可以通过文档对象模型(DOM)来与 HTML 文档进行交互。
它可以通过 JavaScript 代码来获取、修改或创建 HTML 元素。
4. 事件驱动:JavaScript 能够对用户的交互作出响应。
它可以通过事件监听器来捕获用户的交互事件(如点击、输入等),并执行预定的函数。
5. 数据操作:JavaScript 支持各种数据类型和操作,包括数字、字符串、布尔值、对象和数组等。
它可以进行算术运算、字符串拼接、条件判断、循环等操作,以完成复杂的计算和控制流程。
6. 异步操作:JavaScript 支持异步编程,可以通过回调函数、Promise 或者 async/await 等方式处理异步操作,如网络请求、定时器等。
7. 浏览器 API:JavaScript 可以通过浏览器提供的 API 来访问浏览器功能,如操作浏览器窗口、发送网络请求、使用本地存储等。
总之,JavaScript 的工作原理是通过解析和执行代码,与HTML 文档进行交互,并通过事件驱动、数据操作和浏览器API 来实现网页的交互性和动态性。
Ext
序言ExtJS是一个很不错的Ajax框架,可以用来开发带有华丽外观的富客户端应用,使得我们的b/s应用更加具有活力及生命力。
ExtJS是一个用javascript编写,与后台技术无关的前端ajax框架。
因此,可以把ExtJS用在.Net、Java、Php等各种开发语言开发的应用中。
最近我们在几个应用都使用到了ExtJS,对公司以前开发的一个OA系统也正在使用ExtJS2.0进行改造,使得整个系统在用户体验上有了非常大的变化。
本教程记录了前段时间本人学习ExtJS的一些心得及小结,希望能帮助正在学习或准备学习ExtJS的朋友们快速走进ExtJS2.0的精彩世界。
教程包括ExtJS的新手入门、组件体系结构及使用、ExtJS中各控件的使用方法及示例应用等,是一个非常适合新手的ExtJS入门教程。
本教程主要是针对ExtJS2.0进行介绍,全部代码、截图等都是基于ExtJS2.0。
在学习了本教程后,可以下载这个基于ExtJS2.0开发的单用户Blog系统的源代码,这个系统是我们团队中的williamraym与大峡等人开发的一个演示系统,系统源码整体质量比较高,通过学习这套源代码相邻一定能提高您ExtJS的综合水平。
本教程比较适合ExtJS的新手作为入门教程及手册使用,并在我的博客/blog/lengyu/上进行发布;应一些朋友的要求,根据本教程的写作思路,我还编写了比本教程更为详细的《ExtJS实用开发指南》,包含详细的ExtJS框架使用方法、各个控件详细配置参数、属性、方法及事件介绍,与服务器端集成及一个完整的示例应用系统介绍等内容,适合想深入学习ExtJS或正在使用ExtJS进行开发朋友们使用。
该《指南》当前在作为VIP文档发布,供该站的VIP用户阅读及下载。
凡是购买了《ExtJS 实用开发指南》文档的VIP用户,都可以在该指南印刷版出版后均会免费得到相应的印刷版本。
最后,希望广大网友把阅读本教程中的发现的错误、不足及建议等反馈给我们,让我们一起共同学习、共同进步,下面让我们一起进入精彩的ExtJS世界吧。
ext教程
ext教程EXT(JavaScript Extensions)是一种用于制作浏览器扩展的标准,它允许开发者以交互式方式修改和自定义Web页面的行为和外观。
在本教程中,我们将介绍如何使用EXT来开发浏览器扩展。
我们将涵盖EXT的基本概念、开发环境的设置、常用API的使用以及实例应用的创建。
首先,我们需要了解EXT的基本概念。
EXT是基于JavaScript 和HTML的,它允许我们通过注入代码来修改Web页面的行为。
我们可以使用EXT来添加自定义按钮、修改页面样式、拦截网络请求等。
为了开始开发EXT扩展,我们需要设置开发环境。
首先,我们需要安装一个支持EXT的浏览器,如Google Chrome或Mozilla Firefox。
然后,我们需要安装开发者工具,如Chrome开发者工具或Firefox开发者工具。
接下来,我们将介绍EXT的常用API。
EXT提供了一组API,用于访问和修改Web页面的各个部分。
例如,我们可以使用API来找到页面上的特定元素,修改其样式或内容。
我们还可以使用API来发送网络请求或拦截已有的请求。
最后,我们将创建一个实例应用来演示EXT的使用。
我们将开发一个简单的扩展,用于在Facebook页面上添加一个自定义按钮。
当用户点击按钮时,它会向后台服务器发送一个请求,并显示返回的数据。
在这个实例应用中,我们将演示如何创建一个扩展程序,并在Manifest文件中指定其基本属性。
我们还将展示如何使用Content Script来注入我们的代码到页面中,并使用Popup来创建一个显示在浏览器窗口中的弹出窗口。
通过这个教程,您将学习到EXT的基本概念、开发环境的设置、常用API的使用以及实例应用的创建。
您将了解如何使用EXT来修改和自定义Web页面的行为和外观。
这将对您开发具有定制功能的浏览器扩展非常有帮助。
总结来说,EXT是一种用于制作浏览器扩展的标准,它允许开发者以交互式方式修改和自定义Web页面的行为和外观。
ext开发手册
ext开发手册一、简介EXT是一个针对构建富应用程序的JavaScript框架,它拥有丰富的组件库和强大的功能。
本手册将为开发人员提供完整的EXT开发指南,包括基础知识、常用组件和开发技巧等内容。
二、基础知识1. 安装和配置EXT:首先,下载EXT框架的压缩包并解压到项目的根目录。
然后,在HTML页面中引入EXT的必要文件,包括CSS和JavaScript。
最后,在需要使用EXT的页面中初始化EXT环境。
2. EXT的核心概念:理解EXT的基本概念对于开发者来说至关重要。
常见的核心概念包括组件、容器、布局和事件等。
组件是EXT的基本构建块,它可以是按钮、表单、树等等。
容器负责管理和布局组件,而布局则定义了组件的排列方式。
事件是EXT中的重要特性,可以用于处理用户交互和系统响应。
三、常用组件1. 表单组件:EXT提供了各种强大的表单组件,如文本框、下拉列表、复选框等。
开发人员可以根据需求选择合适的组件,并根据组件的配置进行自定义设置。
例如,可以通过设置验证规则和错误提示来有效地验证用户输入。
2. 树组件:EXT的树组件是管理层次数据的理想选择。
开发人员可以通过构建树节点和设置节点属性来构建一个功能齐全的树结构。
树组件还支持展开、折叠、选择和拖放等交互操作,使得数据的展示与操作更加灵活。
3. 网格组件:EXT的网格组件是处理大量数据的最佳工具。
通过设置网格的列模型和数据模型,可以实现自定义的数据显示和排序。
网格组件还支持分页、过滤和编辑功能,为用户提供便利的数据处理方式。
四、开发技巧1. 使用样式:EXT提供了丰富的CSS样式,可以为组件添加不同的外观和交互效果。
开发人员可以通过应用样式类名称或自定义样式来实现个性化的外观效果。
同时,也可以使用主题文件来快速地改变整个应用程序的外观。
2. 数据绑定:EXT支持将数据与组件进行绑定,以实现动态数据的展示和交互。
通过设置数据模型和绑定关系,可以在数据更新时自动更新组件的显示内容。
ext--js框架
ext目录Ext简介Ext是一个强大的js类库,以前是基于YAHOO-UI,现在已经完全独立了,主要包括data,widget,form,grid,dd,menu,其中最强大的应该算grid 了,编程思想是基于面向对象编程(oop),扩展性相当的好.可以自己写扩展.自己定义命名空间.web应用可能感觉太大.不过您可以根据需要按需加载您想要的类库就可以了.主要包括三个大的文件ext-all.css,ext-base.js,ext-all.js(包括所有的类库,您可以根据需要进行删减.官方网站提供这一接口),在引用ext类库的时候.这三个文件必不可少.它提供了丰富的,非常漂亮的外观体验,成为众多界面层开发人员的追捧!其核心的组件基本覆盖了我们构建富客户端的常用的组件。
从 Ext 2开始,商业版(针对那些以盈利为目的的开发方)要收费了。
这可能会影响一些他的应用前景。
目前的最新版本为4.0Ext动画功能介绍一下Ext预置的11个动画功能。
1.slideIn/slideOut:元素的滑进或滑出效果。
默认slideIn是从顶部滑进的,而slideOut 是从底部滑出的,可通过修改第1个参数设置滑进或滑出位置。
其使用方法请看下面代码。
var el = Ext.get('elId');el.slideIn(); //从顶部滑进el.slideOut(); //从底部滑出el.slideIn('l',{ easing: 'easeOut', duration: .5 }); //从左边滑进2.puff:元素慢慢向四周扩大并逐渐消失。
当效果完成后,元素将隐藏(visibility属性为hidden),不过元素原来所占位置将继续存在。
如果需要删除元素,请设置remove属性为true。
其使用方法请看下面代码。
var el = Ext.get('elId'); //默认方式el.puff();//自定义方式,元素消失后删除元素el.puff({ easing: 'easeOut', duration: .5, remove: true, useDisplay: false })3.switchOff:元素闪烁一下,然后往中心折叠(类似关掉电视)。
1-第一章 Ext简介
Ext的版本变迁(3)
EXT3.0发布于2009年6月
重构Ext Core
EXT3.1发布于2009年12月
性能提升
EXT3.2发布于2010年4月 EXT3.3发布于2011年2月 EXT3.4发布于2011年2月 EXT4.0.2a发布于2011年6月
Ext的技术特点(3)
ExtJS到底是收费的还是免费的:
免费授权 开源项目,未使用任何非开源软件-OK 非盈利的研究或学习-OK 不修改使用-OK(不能当工具卖) 企业授权 不想受限制,支持Ext,获得企业授权 OEM/Reseller Licens 将Ext封装为软件开发库或工具包,需取得 专门授权
http://127.0.0.1/ext-4.0.2a/examples/ 演示例子
Ext的运行效果(5)
http://127.0.0.1/ext-3.4.0/docs/ API文档
问题?
第一章 ExtJS概述
主讲:边耐政 Email: nbian@
大纲
什么是RIA tJS的技术特点 ExtJS的版本变迁
ExtJS的运行效果
什么是RIA(1)
富因特网应用程序(Rich Internet Applications,RIA) 利用具有很强交互性的富客户端技术来为用户提供一个 更高和更全方位的网络体验。 RIA开发必须具备三个要素:富客户端技术、服务器技术 和开发工具。 现有的RIA技术:
Ext的版本变迁(1)
ExtJS来源于YUI(Yahoo! User Interface Library)。 Jack Slocum的出色工作——YUI-Ext。
2006年秋天,Jack发行了0.33的YUI-Ext 2007年成立公司,改名为ExtJS。
ext基础
ExtJS引用 ExtJS引用
到官方网站 /products/extjs/download.php下载必要 的核心包; 解压ext-4.0.7-gpl.zip; 在Html中引入相应文件。 <!—引入ExtJs的样式文件--> <link type="text/css" rel="Stylesheet" href="extjs/res ources/css/ext-all.css" /> <!—引入ExtJs的框架文件--> <script type=“text/javascript” src=“extjs/extall.js”></script>
表单与元素组件
radio Ext.form.field.Radio 单选按钮 textarea Ext.form.field.TextArea 区域文本 框 Text Ext.form. Field.Text 表单文本框 time Ext.form. field.Time时间录入项 trigger Ext.form.field.Trigger 触发录入项 在这些组件中最常用的组件有: grid、panel、treepanel、 form、 window等等
allowBlank: false },{ fieldLabel: 'Last Name', name: 'last', allowBlank: false }], buttons: [{ text: 'Reset', handler: function() { this.up('form').getForm().reset(); } }, { text: 'Submit',
ExtJs特点、优缺点及注意事项
ExtJs特点、优缺点及注意事项1.什么是ExtJs?ExtJS可以⽤来开发RIA也即富客户端的AJAX应⽤,是⼀个⽤javascript写的,主要⽤于创建前端⽤户界⾯,是⼀个与后台技术⽆关的前端Ajax框架。
因此,可以把ExtJS⽤在.Net、Java、Php等各种开发语⾔开发的应⽤中。
ExtJS的前⾝来⾃于YUI,经过不断发展与改进,现在已经成为最完整与成熟的⼀套构建RIA Web应⽤的JavaScript基础库。
利⽤ExtJS构建的RIA Web应⽤具有与桌⾯程序⼀样的标准⽤户界⾯与操作⽅式,并且能够横跨不同的浏览器平台。
ExtJS已经成为开发具有完满⽤户体验的Web应⽤完美选择。
ExtJs最开始基于YUI技术,其UI组件模型和开发理念脱胎、成型于Yahoo组件库YUI和Java平台上Swing两者,并为开发者屏蔽了⼤量跨浏览器⽅⾯的处理。
相对来说,EXT要⽐开发者直接针对DOM、W3C对象模型开发UI组件轻松。
2.ExtJs的特点(1).纯Html/CSS+JS技术,重新定义表⽰层的耦合;(2).基于纯Html/CSS+JS技术,提供丰富的跨浏览器UI组件,灵活采⽤JSON/XML数据源开发,使得服务端表⽰层的负荷真正减轻,从⽽达到客户端的MVC应⽤;(3).集成多种JS底层库,满⾜开发者不同需求;(4).Ext初期仅是对YUI的对话框扩展,后来逐渐有了⾃⼰的特⾊,深受⽹友的喜爱。
发展⾄今,Ext除YUI外还⽀持Jquery Prototype等的JS 库,让⼤家⾃由地选择;(5).多浏览器⽀持、⽀持多平台下的主流浏览器。
3.ExtJs的优缺点(1).ExtJs的优点<1>.UI组件丰富,外观漂亮。
Ext JS库有着丰富且漂亮的UI组件,⼤⼤缩短了我们的开发周期,⽽且组件拥有漂亮的布局,经过简单的调⽤与配置就可以实现不错的界⾯布局。
ExtJS提供的各种组件可以⽤更加标准的⽅式展⽰数据降低了开发难度。
ext.js用法
Ext JS 是一个用于构建丰富交互式Web 应用程序的JavaScript 框架。
它提供了许多用于创建用户界面的工具和组件,例如表格、表单、按钮、滑块等。
以下是使用Ext JS 的一些基本步骤:1.引入Ext JS 库:首先,您需要在HTML 文件中引入Ext JS 库。
您可以从Ext JS官方网站下载库文件,并将其放置在您的Web 服务器上。
然后,在HTML 文件中使用<script>标签引入库文件。
html复制代码<script src="path/to/ext.js"></script>2.创建Ext JS 应用程序:使用Ext JS,您可以创建一个应用程序对象来管理整个应用程序的生命周期。
您可以使用Ext.create()方法创建一个应用程序对象。
javascript复制代码Ext.create('Ext.app.Application', {name: 'MyApp',launch: function() {// 在这里编写应用程序的启动代码}});3.创建组件:在Ext JS 中,您可以创建各种类型的组件,例如表格、表单、按钮等。
您可以使用Ext.create()方法创建一个组件对象,并指定组件类型和配置选项。
javascript复制代码Ext.create('Ext.button.Button', {text: 'Click me',renderTo: Ext.getBody(), // 将按钮渲染到页面中handler: function() {// 在这里编写按钮点击事件的代码}});4.配置组件:您可以设置组件的各种属性,例如大小、位置、样式等。
您可以在创建组件时使用配置选项来设置这些属性。
5.处理事件:在Ext JS 中,您可以处理各种事件,例如点击事件、键盘事件等。
javascript的运行原理
javascript的运行原理JavaScript的运行原理什么是JavaScriptJavaScript是一种用于构建Web应用程序的高级编程语言。
它是一种解释性语言,意味着代码在运行时逐行被解释器解释执行。
JavaScript的运行环境JavaScript代码可以在多个环境中运行,最常见的是浏览器环境和环境。
浏览器环境在浏览器环境中,JavaScript代码被嵌入在HTML文档中,并由浏览器的JavaScript引擎处理和执行。
每个浏览器都有自己的JavaScript引擎,例如Chrome浏览器使用V8引擎。
环境是一个基于Chrome V8引擎的JavaScript运行时环境。
它允许JavaScript代码在服务器端运行,可以执行文件读写、网络请求等操作。
JavaScript的解释执行过程JavaScript的解释执行过程包括以下几个步骤:1.词法分析:将代码分解为一系列的词法单元(token),包括关键字、标识符、运算符等。
2.语法分析:将词法单元转换为抽象语法树(AbstractSyntax Tree, AST)。
语法分析器会根据语法规则检查代码的合法性,并构建语法树。
3.解释执行:遍历语法树,执行每个语法节点的操作。
解释器根据操作符执行相应的指令,包括赋值操作、函数调用等。
JavaScript的变量和作用域JavaScript使用var、let和const关键字声明变量。
变量的作用域可以分为全局作用域和函数作用域。
全局作用域在全局作用域中声明的变量可以在代码的任何地方被访问。
全局作用域中的变量在脚本的整个生命周期内都存在。
函数作用域在函数内部声明的变量只能在函数内部被访问。
函数作用域可以避免变量污染和命名冲突。
JavaScript的事件循环JavaScript是单线程语言,但它可以通过事件循环机制实现异步操作。
事件循环是JavaScript执行模型的重要组成部分。
任务队列任务队列存储待执行的任务。
Ext Js分页显示示例原理详解
Ext Js分页显示示例原理详解前几天我们项目组讨论给**公司关于**产品做一个功能展示的用例。
讨论到view层时,用那种框架。
最终选中了大名鼎鼎的EXT JS 框架来做view。
这里的view涉及的不是很复杂。
因为它仅仅是个Demo。
最常用的就是分页显示数据了。
目前extjs仅仅支持xml和json两种格式的数据展现。
就性能而言。
Extjs不可能用于较大的项目。
性能确实不敢恭维。
这里我们仅仅简单的介绍一下它的分页原理。
其实他的源码中提供了大量的例子。
可以参考一下。
该例子就是基于它的官方例子实现的。
目前,市场是比较流行的数据关于extjs就是“深入浅出extjs“了,该书编写的却是不怎么样。
如果想学习extjs,最好研究研究它的源码的例子就行了。
Jar包如下:其中json-lib-2.2.1-jdk1.5.jar xstream-1.3.jar是转换集合类型转换json类型的主要jar包。
测试工程的包路径如下:该示例是用strus2做的mvc。
action类:package action;import bean.Bean;import com.opensymphony.xwork2.ActionSupport;import java.util.ArrayList;import java.util.List;import javax.servlet.http.*;import mons.logging.Log;import mons.logging.LogFactory;import org.apache.struts2.ServletActionContext;import util.ExtHelper;public class DisplayAction extends ActionSupport{private static final Log log=LogFactory.getLog(DisplayAction.class);private static final long serialV ersionUID = 1L;private HttpServletResponse response;private HttpServletRequest request;private int start;private int limit;//表示数据库中数据总条数,用户分页显示private static final long totalResult=100;public String display() throws Exception{List list=new ArrayList();for(int i=0;i<5;i++){bean.Bean bean=new Bean();bean.setId(i);bean.setDetail("detil"+i);bean.setTitle("title"+i);list.add(bean);}String json = ExtHelper.getJsonFromList(totalResult,list);("list转换成json格式的数据开始");(json);response = ServletActionContext.getResponse();response.setContentType("application/xml;charset=UTF-8");response.getWriter().write(json);return null;}}Po类:package bean;public class Bean {private int id;private String title;private String detail;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) { this.title = title;}public String getDetail() {return detail;}public void setDetail(String detail) {this.detail = detail;}}ExtHelper类:package util;import java.util.ArrayList;import java.util.List;import net.sf.json.JSONObject;import com.thoughtworks.xstream.XStream;import com.thoughtworks.xstream.io.xml.DomDriver;public class ExtHelper {/***list转换成xml*/public static String getXmlFromList(long recordTotal , List beanList) { Total total = new Total();total.setResults(recordTotal);List resultlist = new ArrayList();resultlist.add(total);XStream sm = new XStream(new DomDriver());for (int i = 0; i < resultlist.size(); i++) {Class c = resultlist.get(i).getClass();String b = c.getName();String[] temp = b.split("\\.");sm.alias(temp[temp.length - 1], c);}String xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" + sm.toXML(resultlist);System.out.println("**********************************"+xml);return xml;}/***list转换成json*/public static String getJsonFromList(long recordTotal , List ListbeanList){TotalJson total = new TotalJson();total.setResults(recordTotal);JSONObject JsonObject = JSONObject.fromObject(total);return JsonObject.toString();}}TotalJson类:package util;import java.util.List;public class TotalJson {private long results;private List items;public List getItems() {return items;}public void setItems(List items) {this.items = items;}public long getResults() {return results;}public void setResults(long results) {this.results = results;}}Struts.xml<!DOCTYPE struts PUBLIC '-//Apache Software Foundation//DTD Struts Configuration 2.0//EN''/dtds/struts-2.0.dtd'><struts><constant name="struts.i18n.encoding" value="UTF-8"/><package name="ext_fenye" extends="struts-default"><action name="getDataList" class="action.DisplayAction" method="display"></action></package></struts>JSP:<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><html><head><title>ExtJs-FenY e</title><link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/pagesExt/ext-2.2.1/resources/css/ext-all.css" /><link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/pagesExt/css/style.css" /><script type="text/javascript"src="${pageContext.request.contextPath}/pagesExt/ext-2.2.1/adapter/ext/ext-base.js"></script><script type="text/javascript" src="${pageContext.request.contextPath}/pagesExt/ext-2.2.1/ext-all.js"></script><script type="text/javascript" src=""${pageContext.request.contextPath}/pagesExt/ext-2.2.1/ext-all-debug.js"> </script></head><script type="text/javascript">Ext.onReady(function(){//定义数据集对象var typeStore = new Ext.data.Store({//配置分组数据集autoLoad :{params : {start:0,limit : 6}},//默认加载参数:start=0,limit=6reader: new Ext.data.JsonReader({totalProperty: "results",root: "items",//和action的list的名称一致。
Ext概述与框架基础
1.Ext框架简介
1)什么是ext?
Ext是一个Ajax框架,可以用来开发带有华 丽外观的富客户端应用,使得我们的b/s应 用更加具有活力及生命力,提高用户体验。 Ext是一个用javascript编写,与后台技术无 关的前端ajax框架。因此,可以把Ext用 在.Net、Java、Php等各种开发语言开发的 应用中。 Ext最新版本是ext4.0
helloWord示例程序
helloWord在HTML直接嵌入代码实现
<script type="text/javascript" language="javascript"> Ext.onReady(function(){ Ext.Msg.alert('helloWord','Hello Word!'); }); </script>
<link rel="stylesheet" type="text/css" media="all" href="extjs/resources/css/extall.css" /> <script type="text/javascript" src="extjs/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="extjs/ext-all.js"></script>
Ext框架简介
2)Ext提供一系列的对象类, 这些基本上都是用于处理 WEB页面控件的。
Ext
Ext-组件配置选项
配置选项是Ext 组件非常重要的特性,在大多数Ext 组件中,都支持在构造 函数中传递一个对象作为参数,在这个对象中包含组件的详细描述信息,比 如多高、多宽、有多少子元素等等,Ext 就是根据这些参数来创建组件对象的。 在指定子元素时,可以不使用new 操作符,而是直接使用配置选项来指定要 使用的组件特性,并在配置选项中通过xtype 这个属性来指定组件的类型。 当一个组建创建以后,他会在何时,在页面的哪个位置进行显示呢?比如说 刚才的面板Panel 的示例,在页面上并没有看见这个面板。虽然我们使用了 new 操作符来初始化了这个组件对象,但他并不会在页面中显示。组件要显 示的前提是要渲染(Render),组件只有在渲染Render 以后,才会在页面中显 var panel=new Ext.Panel({title:"面板",width:500,height:300}); 示。让组件渲染及显示的方法有下面几种: panel.render("test");
扩展内容
Ext
本章任务
学会使用Ext
本章目标
了解Ext 掌握Ext的使用
Ext简介
Ext
ExtJS 是一个Ajax 框架,是一个用javascript 写的,用于在客户 端创建丰富多彩的web 应用程序界面 ExtJS 可以用来开发RIA(Rich Internet Application,富互联网应 用系统)的开源AJAX 应用框架,使用的开源协议是GPL。 ExtJS 是一个用javascript 写的,主要用于创建前端用户界面,是 一个与后台技术无关的前端ajax 框架。因此,可以把ExtJS 用在 .Net、Java、Php 等各种开发语言开发的应用中。 ExtJs 最开始基于UI 技术,由开发人员Jack Slocum 开发,通过 参考Java Swing 等机制来组织可视化组件,无论从UI 界面上CSS 样式的应用,到数据解析上的异常处理,都可算是一款不可多得的 JavaScript 客户端技术的精品。
Ext简单介绍
Ext简单介绍ExtJS是⼀个Ajax框架,是⼀个⽤javascript写的,⽤于在客户端创建丰富多彩的web应⽤程序界⾯。
ExtJS可以⽤来开发RIA也即富客户端的AJAX应⽤ ExtJS是⼀个⽤javascript写的,主要⽤于创建前端⽤户界⾯,是⼀个与后台技术⽆关的前端ajax框架。
因此,可以把ExtJS⽤在.Net、Java、Php等各种开发语⾔开发的应⽤中。
ExtJs最开始基于YUI技术,由开发⼈员Jack Slocum开发,通过参考Java Swing等机制来组织可视化组件,⽆论从UI界⾯上CSS样式的应⽤,到数据解析上的异常处理,都可算是⼀款不可多得的JavaScript客户端技术的精品。
朋友问我,Ext怎么学习,我记得⾃⼰学的时候纯纯因为它的简单和视觉效果特别好,因为喜欢了才有努⼒的坚持不懈的激情.有朋友说能否写点简单的⽰例⽅便⼊门,我是觉得⾃⼰写的都是很浅陋东西,实在不知道怎么简单了,昨天晚上想了许久,觉得⾃⼰还是⽆⽐的粗浅,但依然有⼈说看不懂,我想可能是⾔语没有说清楚,或者你在等到天上掉馅饼吧.因为,我觉得开始学习就是不断的模仿,只要知道它的⼤致概念,在⾃⼰的项⽬中不断的接触,⼀天⼀天就会成长起来,建议最好根据⾃⼰的学习进度写个⼩⽹站,将所学的知识融会贯通⼀下,就像我写了好⼏个Ext的⽹站,虽然暂时都没有发布出去,但⾃⼰经常看看也是对⾃⼰的⼯作的激励吧.接下来⼀段⽇⼦,尽量写⼀些Ext2.2所有的对象的最简单的⽤法.如果能够坚持,以后会写⼀个对应的提⾼系列.下⾯就开始Ext之旅吧Ext是什么?答⽈:Ext是⼀个⽤jscript(javascript)所写的⼀个ajax框架(我想⼤家都知道什么是ajax了吧,假想你已经知道,那我就不说了).⽽javascript也是更知道它的概念了,就更不⽤说了吧,好,那就也不说了.什么是Ext呢,结合javascript和ajax,我想你闭眼猜都能够猜出它的功能了吧.那就⽤⾃⼰的语⾔说下什么是Ext吧,呵呵,思考真的很重要的.学习的重要环节就是要不断的⾃⼰总结,总结就来⾃⾃⼰的思考.Ext有多好呢?答⽈:仁者见仁, ⾃⼰好好看看吧,它的绚丽多姿是⽆法⽤语⾔描述的,你可能会很惊叹,但我还要告诉你,这个并没有把Ext的所有的功能都罗列出来,仅仅是⼀部分,有更多的有太多的等你去发现,星哥说了:太阳已经落⼭了,时间不等⼈滴.Ext难吗?答⽈:太多的⼈问这个问题,就像我开始学习java⼀样,我问了好多好多⼈,都说难,让我学习的信⼼到最后都剩的没有⼀点⼉了,于是学了当时⾝边谁也不懂的.呵呵.如果有⼈问我这个问题,我告诉你,真的很简单,不是说我会了才这么说,其实,我想说的是:⼤家玩游戏基本上都是⽆师⾃通的吧,现在明⽩了吧,如果你有玩游戏的那份精神和⽃志,靠,天下事难难难者亦易易易也.在哪⾥下载Ext呢?答⽈:好,你能够这么问,看来我做说客还是可以的(信⼼指数⼜增加了),因为我是从2.0版本,2.1版本,到现在的2.2版本,我真的说不出来他们到底有何具体的差别,但明显的看见它明显壮⼤了,不仅仅是体积,更是它的⼒量. 官⽅的版本,有各个版本的,我建议学习最新的吧.Ext有核⼼吗?答⽈:看来只有我才能够问这个问题呀,当年⽐⼲⽆⼼⽽死,看来框架也是⼀样的,没有核⼼怎么可以呢.我想在javascript中⼤家也都知道什么是类了吧,简单的说就是⼀个函数就是⼀个类,类⾥⾯还可以有很多的类,可以⽆限嵌套.⽽Ext就是有很多的类库组成,也就是有很多的函数组成,只是现在天上飞的⽔⾥游的都成了对象了,所以很多技术也都⽤对象的语⾔来描述.Ext就是主要有哪些类库组成呢?有⼈说肯定有API层,是的,有的,有些⼈总是喜欢称底层是API(API是什么意思,全称Application Programming Interface 应⽤编程接⼝),喜欢就喜欢吧,我管不着.但Ext说了,要改变这样的称呼,于是Ext称之为Core,为什么呢?因为Ext的底层在Core这个⽂件夹⾥⾯.core是什么意思呢?core[kC:]n.果核, 中⼼, 核⼼,我觉得称底层为Core确实不错,⽽且⼤写的CORE还有⼀个意思:CORE=Congress of Racial Equality 争取种族平等⼤会.感觉Ext的作者Jack Slocum是具有很浓烈的浪漫主义情怀的追求完美的⼀个程序员. 说到Core了:core对Ext的DoM操作,事件处理以及所有的直接在页⾯上可以展⽰的和不可以展⽰的组件等提供了基础的功能.刚刚提到可显⽰的控件也叫组件,我们在程序中可以直接通过这些控件来实现⾮常友好,并且交互性也很好的应⽤.特别⼀提的是在那些不可见的组件中,有⼀个utils类,该类提供了很多的很实⽤的功能,可以⽅便实现对接收和发送的数据进⾏各种操作,实在是Ext框架不可或缺的⼀部分.如何介绍Ext的组件呢?答⽈:这个问题我确实想了很长时间,因为像很多软件的帮助教程⼀样,它们总是把该软件的所有功能都罗列出来,然后再逐个详解,甚⾄很多功能可能你都从来都不需要,但你并不知道⾃⼰是否需要,就像最近在学习flash,总感到⾃⼰有茫然不知所措的感觉,学习的态度都会转变.但,也不能够说⼈家的帮助教程不好呀,毕竟是追求完整性和可⽤性⽅⾯,每个⼈的见解并不⼀样. 好吧,我下定决⼼了.先简单把组件说下,然后对这些组件再详细解说加⽰例,⽽且每个⽰例都追求可⽤和简单,将来再写⼀个深⼊的就能够达到完整性,倒不是说⼀定要追求完整,⽽是,如果你仅仅写了⼊门,却没有提⾼的版本,感觉⾃⼰并没有把事情做好做完整,毕竟⼈⼈都希望有始有终呀.毕竟⾃⼰还想早点介绍点关于Flex的故事呢,唉,总是没有时间.Ext的组件有哪些呢?答⽈:Every component has a specific xtype, which is its Ext-specific type name, along with methods for checking the xtype like getXType and isXType. 下⾯就是这些可以使⽤了控件的列表了,我直接从它的帮助⽂档复制过来,并同时加上了它的英⽂原⽂,因为每次看到这段我总是能够想起什么,呵呵:Ext组件主要包括⼀些常⽤组件,如表单组件,数据组件,导航组件,相信⼤家看名称就知道什么意思了.xtype Class基本组件---------------------------------------box Ext.BoxComponentbutton Ext.Buttoncolorpalette Ext.ColorPalettecomponent ponentcontainer Ext.Containercycle Ext.CycleButtondataview Ext.DataViewdatepicker Ext.DatePickereditor Ext.Editoreditorgrid Ext.grid.EditorGridPanelgrid Ext.grid.GridPanelpaging Ext.PagingToolbarpanel Ext.Panelprogress Ext.ProgressBarpropertygrid Ext.grid.PropertyGridslider Ext.Slidersplitbutton Ext.SplitButtonstatusbar Ext.StatusBartabpanel Ext.TabPaneltreepanel Ext.tree.TreePanelviewport Ext.Viewportwindow Ext.Window导航组件---------------------------------------toolbar Ext.Toolbartbbutton Ext.Toolbar.Buttontbfill Ext.Toolbar.Filltbitem Ext.Toolbar.Itemtbseparator Ext.Toolbar.Separatortbspacer Ext.Toolbar.Spacertbsplit Ext.Toolbar.SplitButtontbtext Ext.Toolbar.TextItem窗体组件---------------------------------------form Ext.FormPanelcheckbox Ext.form.Checkboxcombo boBoxdatefield Ext.form.DateFieldfield Ext.form.Fieldfieldset Ext.form.FieldSethidden Ext.form.Hiddenhtmleditor Ext.form.HtmlEditorlabel belnumberfield Ext.form.NumberFieldradio Ext.form.Radiotextarea Ext.form.TextAreatextfield Ext.form.TextFieldtimefield Ext.form.TimeFieldtrigger Ext.form.TriggerFieldExt的每个组件都是有⼀个指定的Xtype属性值,通过该值就可以得到该组件的类型,同时也可以根据该组件来定义⼀个组件例如:{xtype:"button",id:"btnEnter",text:"确定"} //这就是定义了⼀个按钮的组件.{xtype:"field",id:"txtName"} //这就是定义了⼀个输⼊框的组件.{xtype:"field",id:"txtPwd",inputType:"password"} //这就是定义了⼀个密码框的组件.当然你可以不⽤xtype ⽐如:var btnEnter = new Ext.Button({id:"btnEnter",text:"确定"} );//这就是定义了⼀个按钮的组件.var txtName = new Ext.form.Textfield({id:"txtName"} );//这就是定义了⼀个输⼊框的组件.var txtPwd = new Ext.form.Textfield({id:"txtPwd",inputType:"password"} );//这就是定义了⼀个密码框的组件.是不是很简单,在下⾯会解说具体的⽰例,包括它的基本的语法结构,同时,你需要明确,这和你在javascript⾥⾯的⽤法不会有不同的地⽅,只是有些⽅法Ext已经给我们封装好了,我们只要有拿来主义的精神就可以.特别⼀说的是:Ext的⼀些很实⽤的类都是全局的,⽆须new了,直接⽤就可以.在下节会介绍⼀些Ext的很好的很实⽤的也很简单就能够使⽤的Util类.转⾃。
ext.js 正则
ext.js 正则正则表达式(Regular Expression)是在计算机科学中用来匹配符合特定模式的文本的工具。
它由一系列字符组成,这些字符定义了搜索模式,并且可以在文本中找到与之匹配的字符串。
在JavaScript的ext.js 中,我们可以使用正则表达式来进行各种字符串匹配操作。
来看一个简单的例子:javascriptvar str = "Hello World";var pattern = /World/;var result = str.match(pattern);console.log(result);输出:["World", index: 6, input: "Hello World", groups: undefined]在上面的示例中,我们定义了一个字符串变量`str`,然后使用正则表达式`/World/` 来匹配其中包含"World" 的部分。
使用`match()` 方法可以获取匹配的结果,并将其存储在变量`result` 中。
最后,通过`console.log()` 打印出结果。
接下来,我们将详细讨论一些常用的正则表达式相关操作。
创建正则表达式在JavaScript中,有两种方法可以创建正则表达式。
一种是使用字面量形式,另一种是使用`RegExp` 构造函数。
使用字面量形式可以直接在正则表达式中写入模式,如上面的例子中使用的`/World/`。
字面量形式的正则表达式被包含在两个斜杠(`/`)之间。
使用`RegExp` 构造函数可以从一个字符串来创建正则表达式,如下例所示:javascriptvar pattern = new RegExp("World");这两种方法基本上是等效的,但使用字面量形式更加常见和简洁。
匹配字符正则表达式常用来匹配特定的字符或字符集。
例如,我们可以使用正则表达式来判断一个字符串是否包含数字:javascriptvar str = "Hello 123";var pattern = /\d/;var result = str.match(pattern);console.log(result);输出:["1", index: 6, input: "Hello 123", groups: undefined]在上面的例子中,正则表达式`\d` 表示匹配任意一个数字。
EXT_JS入门详解
EXT_JS入门详解第二章、开始ExtJS2.1获得ExtJSadapter:负责将里面提供第三方底层库(包括Ext 自带的底层库)映射为Ext 所支持的底层库。
build:压缩后的ext 全部源码(里面分类存放)。
docs: API 帮助文档。
exmaples:提供使用ExtJs 技术做出的小实例。
resources:Ext UI 资源文件目录,如CSS、图片文件都存放在这里面。
source:无压缩Ext 全部的源码(里面分类存放) 遵从Lesser GNU (LGPL)开源的协议。
Ext-all.js:压缩后的Ext 全部源码。
ext-all-debug.js:无压缩的Ext 全部的源码(用于调试)。
ext-core.js:压缩后的Ext 的核心组件,包括sources/core 下的所有类。
ext-core-debug.js:无压缩Ext 的核心组件,包括sources/core 下的所有类。
2.2应用ExtJS应用extjs 需要在页面中引入extjs 的样式及extjs 库文件,样式文件为resources/css/extall.css,extjs 的js 库文件主要包含两个,adapter/ext/ext-base.js 及ext-all.js,其中ext-base.js表示框架基础库,ext-all.js 是extjs 的核心库。
adapter 表示适配器,也就是说可以有多种适配器,因此,可以把adapter/ext/ext-base.js 换成adapter/jquery/ext-jquery-adapter.js ,或adapter/prototype/ext-prototype-adapter.js 等。
因此,要使用ExtJS 框架的页面中一般包括下面几句:在ExtJS 库文件及页面内容加载完后,ExtJS 会执行Ext.onReady 中指定的函数,因此可以用,一般情况下每一个用户的ExtJS 应用都是从Ext.onReady 开始的,第三章Ext框架基础及核心简介3.1Ext类库简介ExtJS 由一系列的类库组成,一旦页面成功加载了ExtJS 库后,我们就可以在页面中通过javascript 调用ExtJS 的类及控件来实现需要的功能。
ext简介
1 Ext 简介1.1 ext 简介ExtJS 是 一 个 用 javascript 写 的 , 主 要 用 于 创 建 前 端 用 户 界 面 , 与 后 台 技 术 无 关 的 前 端 ajax 框 架 。
因 此 ,可 以 把 ExtJS 用 在 .Net、Java、Php 等 各 种 开 发 语 言 开 发 的 应 用 中 。
该 框 架 完 全 基 于 纯 Html/CSS+JS 技 术 ,提 供 丰 富 的 跨 浏 览 器 UI 组 件 , 灵 活 采 用 JSON/XML 数 据 源 开 发 , 实 现 前 台 和 后 台 数 据 的 交 。
ExtJs 官 方 网 站 。
! 它 可 以 实 现 的 功 能 有 : 菜 单 、 目 录 树 、 form 表 单 、 表 格 、 图 形 统 计 、 窗口页面等。
而且还可以利用一些扩展类对功能进行扩展。
Ext 是 基 于 Web 的 客 户 端 框 架 , 完 全 是 基 于 标 准 W3C 技 术 构 建 设 的 , 其 使 用 到 的 都 是 HTML、 CSS、 DIV 等 相 关 技 术 。
Ext 最 杰 出 之 处 , 是 开 发 了 一 系 列 非 常 简 单 易 用 的 控 件 及 组 件 ,我 们 只 需 要 使 用 这 些 组 件 就 能 实 现 各 种 丰 富 多 彩 的 UI 的 开 发 。
1.2 ext 学习与应用经验小结Ext 无 论 组 件 有 多 少 配 置 属 性 、 还 是 事 件 、 方 法 等 等 , 其 最 终 都 会 转 化 为 HTML 在 浏 览 器 上 显 示 出 来 ,而 每 一 个 HTML 页 面 都 有 一 个 层 次 分 明 的 DOM 树 模 型 ,浏 览 器 中 的 所 有 内 容 都 有 相 应 的 DOM 对 象 ,动 态 改 变 页 面 的 内 容 , 正 是 通 过 使 用 脚 本 语 言 来 操 作 DOM 对 象 实 现 。
第8章 Ext简介(理论)
var cm = new Ext.grid.ColumnModel()用来创建表格列信息
一个简单的Grid 一个简单的
向表格中添加数据
var data = [ ['0001', '张三','boy','9/1 12:00am','建设路', '0001remark'], ['0002', '李四','boy', '9/1 12:00am','人民路', '0002remark'], ['0003', '王五','boy', '9/1 12:00am','大致路', '0003remark'], ['0004', '赵六','girl', '9/1 12:00am','湖边路', '0004remark'] ];
1.5 Ext事件 事件
ExtJS提供了一套强大的事件处理机制,通过这些事件处理机制来响应用 户的动作、监控控件状态变化、更新控件视图信息、与服务器进行交互 <html> <head> 等等 <title>button</title> 一个按钮的点击事件 <link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" />
ExtJS简介
的精彩表现——丰富的 组件 丰富的UI组件 四、 ExtJS的精彩表现 的精彩表现 丰富的
这就是ExtJS 的Grid 组件的一个展示效果。从图中可以 这就是 组件的一个展示效果。 看出, 界面基本上和桌面程序的Grid 组件一样;从 组件一样; 看出,Grid 界面基本上和桌面程序的 图上也能看出该组件的一些功能,在功能上相对于桌面程 图上也能看出该组件的一些功能, 序的Grid 组件,ExtJS 的Grid 组件也毫不逊色。 组件, 组件也毫不逊色。 序的
三、ExtJS简介 简介
Ext的最大的优势是类似传统 的最大的优势是类似传统GUI方式的编程以及浏览器兼容性 的最大的优势是类似传统 方式的编程以及浏览器兼容性 开发出来的界面非常的标准、统一,省去了美工的麻烦; ,开发出来的界面非常的标准、统一,省去了美工的麻烦;劣势 就是它是重量级的框架,体积大,不利于低带宽环境使用. 就是它是重量级的框架,体积大,不利于低带宽环境使用 ExtJS主要是做 架构下的业务系统的,对于企业应用系统,尤 主要是做BS架构下的业务系统的 主要是做 架构下的业务系统的,对于企业应用系统, 其是MIS(管理信息系统)类型的系统而言 其是 (管理信息系统)类型的系统而言EXT 目前基本是第一 选择;目前一般不应用于互联网网站的开发, 选择;目前一般不应用于互联网网站的开发,主要是因为加载内 容比较耗时, 因高度封装不太容易做美化【 容比较耗时, 影响使用体验 ,因高度封装不太容易做美化【但 是它的动画效果相当不错,提高了用户体验】。 是它的动画效果相当不错,提高了用户体验】。 对于像我们这样的没有美术功底的程序员来说, 对于像我们这样的没有美术功底的程序员来说,EXT为我们解决 为我们解决 了一大难题, 全部帮你搞定 全部帮你搞定【 了一大难题,UI全部帮你搞定【直接调用函数设置对应的参数就 OK,因为它是 面向对象和组件化的思想, ,因为它是100%面向对象和组件化的思想,一致的语法, 面向对象和组件化的思想 一致的语法, 全局的命名空间。 所以写代码时非常规范、方便】, 】,不用费劲去 全局的命名空间。 所以写代码时非常规范、方便】,不用费劲去 弄样式! 同时,有许多用其他技术无法实现或极难实现的功能, 弄样式! 同时,有许多用其他技术无法实现或极难实现的功能, 却能用EXT轻易实现,比如 轻易实现, 中的表格 却能用 轻易实现 比如EXT中的表格、树形、布局等控件能 中的表格、树形、布局等控件能 为我们的开发工作节约大量的时间和精力, 为我们的开发工作节约大量的时间和精力,这些都坚定了我们使 用EXT的决心。 的决心。 的决心 Ext最杰出之处,是开发了一系列非常简单易用的控件及组件, 最杰出之处, 最杰出之处 是开发了一系列非常简单易用的控件及组件, 我们只需要使用这些组件就能实现各种丰富多彩的UI的开发 的开发。 我们只需要使用这些组件就能实现各种丰富多彩的 的开发。下 面是一些使用ExtJS开发的应用程序截图: 开发的应用程序截图: 面是一些使用 开发的应用程序截图
ext文件系统原理
ext文件系统原理
EXT文件系统是Linux操作系统中使用最广泛的文件系统之一,它的设计目标是提供一种高度可靠、快速、灵活的文件系统。
EXT文件系统基于磁盘分区的结构,将硬盘空间划分为一个
个的块(block),每个块的大小通常为4KB或8KB。
文件被
分成许多块并存储在磁盘上,每个块都有一个唯一的块号。
EXT文件系统在组织磁盘空间时采用了一种树型结构,称为inode结构。
每个文件或目录都分配有一个inode,其中记录了文件或目录的相关信息(例如,所属用户、所属组、存储位置等)。
在文件系统中,所有的文件和目录都按照树形结构组织,并以根节点为起点,可以由父节点指向其子节点,而每个子节点同样也可以成为父节点,指向它的子节点。
这样,树形结构就能表达出文件和目录之间的层次关系。
EXT文件系统采用的是分离目录和文件数据的存储策略,即
文件数据和目录数据储存在不同的区域,这一策略有利于提高文件系统性能。
同时,EXT文件系统使用了全局帮助位图(Global Bitmap)的数据结构,用于标识哪些块是可用的,哪些是已经使用的块。
这种帮助位图能够将已分配的块与未分配的块区分开来,并且能够快速识别空闲块。
总之,EXT文件系统是一种高效、可靠、灵活的文件系统,
相对于其他文件系统来说有更好的性能和可靠性,适用于处理大量的小文件和大文件,被广泛应用于Linux操作系统和其他Unix操作系统中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Ext-JS概述(工作原理)什么是ExtJSExtJS(简称Ext)是以HTML作为控件的骨干、CSS作为样式的表现、以JavaScript 作为编程语言,可应用于IE/FireFox/Opera等的各种浏览器上的AJAX UI组件库。
Ext美观大方,实例完整,完全可以靠这些丰富例子,就地取材很快的建立起一个像样的程序来。
示例--使用AJAX技术在网格中显示服务器端记录数组数据。
检查Ext内核是否添加并可用。
静态页面:<html><head><meta http-equiv="Content-Type" content="text/html;charset=gb2312"><title>Grid Filter Example</title><link rel="stylesheet" type="text/css"href="../../resources/css/ext-all.css" /><script type="text/javascript" src="../../adapter/ext/ext-base.js"></script><script type="text/javascript" src="../../ext-all.js"></script> <script type="text/javascript" src="grid-filter.js"></script></head><body><h1>Grid Filter Example</h1><div id="grid-example" style="margin: 10px;"></div></body></html>说明:Ext的内核文件有如下几个:ext-all.css与显示有关的JavaScript文件grid-filter.js,实现显示与界面的分离。
配置Ext的JavaScript:grid-filter.jsExt.onReady(function(){var ds = new Ext.data.JsonStore({url:'GetData.ashx',//数据源id: 'id', //主键totalProperty: 'total', //记录数root: 'data', //记录数组数据名fields: [{name:'id'}, {name:'company'}]//记录字段数组});var cm = new Ext.grid.ColumnModel([{dataIndex: 'id', header: 'Id'},//数据字段,列标题文本{dataIndex: 'company', header: 'Company'}]);var grid = new Ext.grid.GridPanel({id: 'example',title: 'Grid Filters Example',ds: ds,//数据存储cm: cm,//数据列模板enableColLock: false,loadMask: true,height:400,width:700,el: 'grid-example'//网格显示容器标签元素});grid.render();ds.load();});说明:Ext.onReady(function(){…})设置DOM文档加载完毕后回调函数。
三个核心对象:数据存储、网格列模板和网格面板数据存储的重要属性有:url、 id、totalProperty、root、fields。
网格列模板:这个列模板包含多个列,每个列重要属性为dataIndex、header。
网格面板的重要属性ds、cm、el。
服务器端获得数据的程序GetData.ashx<%@ WebHandler Language="C#" Class="GetData" %>using System;using System.Web;public class GetData : IHttpHandler{public void ProcessRequest (HttpContext context) {context.Response.ContentType = "text/plain";context.Response.Write("{'total':2,'data':[{id:1,company:'百度'},{id:2,company:'新浪'}]}");}public bool IsReusable {get {return false;}}}利用单击事件装载数据在静态页面中添加按钮<input id="btn_getdata" type="button" value="获得数据" />修改JavaScript文件将产生网格的代码放在Ext.onReady()之外,将按钮单击事件放在xt.onReady ()之内。
代码如下:function loaddata(){var ds = new Ext.data.JsonStore({url:'GetData.ashx',id: 'id',totalProperty: 'total',root: 'data',fields: [{name:'id'}, {name:'company'}]});var cm = new Ext.grid.ColumnModel([{dataIndex: 'id', header: 'Id'},{dataIndex: 'company', header: 'Company'}]);cm.defaultSortable = true;var grid = new Ext.grid.GridPanel({id: 'example',title: 'Grid Filters Example',ds: ds,cm: cm,loadMask: true,height:400,width:400,el: 'grid-example'});grid.render();ds.load();}Ext.onReady(function(){Ext.get('btn_getdata').on('click', function(){loaddata();});});Ajax请求:Ext.onReady(function(){Ext.get('btn_getdata').on('click', function(){ Ext.Ajax.request({url:'getdata.ashx',success: function (r) {//带一个参数eval("var r="+r.responseText);alert(r.total);},failure: function (){alert('请求失败!');}});});});或采用另一种回调函数:Ext.onReady(function(){Ext.get('btn_getdata').on('click', function(){ Ext.Ajax.request({url: 'getdata.ashx',callback:cb});});});var cb = function(r,bSuccess,oResponse){if(bSuccess){eval("var r="+oResponse.responseText);alert(r.total);}else{alert("请求失败!");}};注意:路径中不能带中文。
简单格式的JsonStore只指出fields和datafunction loaddata(jsondata){var ds = new Ext.data.JsonStore({fields: ['id','company'],data:jsondata//服务器端的数据是对象数组格式。
});var cm = new Ext.grid.ColumnModel([{dataIndex: 'id', header: 'Id'},{dataIndex: 'company', header: 'Company'}]);cm.defaultSortable = true;var grid = new Ext.grid.GridPanel({id: 'example',title: 'Grid Filters Example',ds: ds,cm: cm,height:400,width:400,el: 'grid-example'});grid.render();ds.load();}Ext.onReady(function(){Ext.get('btn_getdata').on('click', function(){ Ext.Ajax.request({url: 'getdata_ajax.ashx',callback:cb});});});var cb = function(r,bSuccess,oResponse){if(bSuccess){eval("var jsondata="+oResponse.responseText); loaddata(jsondata);}else{alert("请求失败!");}};学会使用帮助。