`
40020072
  • 浏览: 72745 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

初探EXT(一)

    博客分类:
  • ext
阅读更多

一、如何使用EXT:

想把ext放入自己的项目,需要自己整理一下,因为发布包里的东西并非都是必要的,比如文档,比如例子,比如源代码。

必要的最小集合是这样:ext-all.js,adapter/ext/ext-base.js,build/locale/ext-lang-zh_CN.js和整个resources目录。

  1. ext-all.js,adapter/ext/ext-base.js就包含了ext的所有功能,所有的js脚本都在这里了。

  2. build/locale/ext-lang-zh_CN.js是中文翻译。

  3. resources目录下是css样式表和图片。

使用时,在页面中导入:

<link rel="stylesheet" type="text/css" href="${放置ext的目录}/resources/css/ext-all.css" /> <script type="text/javascript" src="${放置ext的目录}/ext-base.js"></script> <script type="text/javascript" src="${放置ext的目录}/ext-all.js"></script> <script type="text/javascript" src="${放置ext的目录}/ext-lang-zh_CN.js"></script>

就可以使用了。

 

 

二、尝试grid

1、ext里,这个列的定义,叫做ColumnModel,简称cm的就是它,它作为整个表格的列模型,是要首先建立起来的。

这里我们建立一个三列的表格,第一列叫编号(code),第二列叫名称(name),第三列叫描述(descn)。

var cm = new Ext.grid.ColumnModel([ {header:'编号',dataIndex:'id'}, {header:'名称',dataIndex:'name'}, {header:'描述',dataIndex:'descn'} ]);

每列的header表示这列的名称,dataIndex是跟后面的东西对应的

2、有了表格的骨架,现在我们要向里边添加数据了。这个数据当然也是二维了,为了简便,我们学习examples里的array-grid.js里的方式,把数据直接写到js里。

var data = [ ['1','name1','descn1'], ['2','name2','descn2'], ['3','name3','descn3'], ['4','name4','descn4'], ['5','name5','descn5'] ];

 

 

3、

因为咱们希望grid不只能支持array,还可以支持json,支持xml,甚至支持咱们自己定义的数据格式,ext为咱们提供了一个桥梁,Ext.data.Store,通过它我们可以把任何格式的数据转化成grid可以使用的形式,这样就不需要为每种数据格式写一个grid的实现了。现在咱们就来看看这个Ext.data.Store是如何转换array的。

 

var ds = new Ext.data.Store({ proxy: new Ext.data.MemoryProxy(data), reader: new Ext.data.ArrayReader({}, [ {name: 'id'}, {name: 'name'}, {name: 'descn'} ]) }); ds.load();

ds要对应两个部分:proxy和reader。proxy告诉我们从哪里获得数据,reader告诉我们如何解析这个数据。

现在我们用的是Ext.data.MemoryProxy,它是专门用来解析js变量的。你可以看到,我们直接把data作为参数传递进去了。

Ext.data.ArrayReader专门用来解析数组,并且告诉我们它会按照定义的规范进行解析,每行读取三个数据,第一个叫id,第二个叫name,第三个descn。是不是有些眼熟,翻到前面cm定义的地方,哦,原来跟dataIndex是对应的。这样cm就知道哪列应该显示那条数据了。唉,你要是能看明白这一点,那你实在是太聪明了。

记得要执行一次ds.load(),对数据进行初始化。

有兄弟可能要问了,要是我第一列数据不是id而是name,第二列数据不是name而是id咋办?嗯,嗯,这个使用就用mapping来解决。改改变成这样:

var ds = new Ext.data.Store({ proxy: new Ext.data.MemoryProxy(data), reader: new Ext.data.ArrayReader({}, [ {name: 'id', mapping: 1}, {name: 'name', mapping: 0}, {name: 'descn', mapping: 2} ]) });

这样id和name两列的数据翻转了。如此这般,无论数据排列顺序如何,我们都可以使用mapping来控制对应关系,唯一需要注意的是,索引是从0开始的,所以对应第一列要写成mapping:0,以此类推。

 

最后将以上代码放到一个JS文件中(注意要加上Ext.onReady(function(){});),HTML文件中放入一个div id="grid"

 

一个漂亮的表格就出现了。

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Ext3.0 动态数据 Chart 初探

    Ext3.0动态数据Chart初探 在Web开发中,数据可视化是不可或缺的一部分,它能够帮助用户更好地理解和分析数据。Ext JS是一个强大的JavaScript库,专为构建富客户端应用程序设计,其图表组件(Chart)功能强大,支持...

    Ext JS 4 First Look

    《Ext JS 4初探》是一本由Loiane Groner撰写的专为开发者设计的实用指南,旨在帮助他们理解和掌握Ext JS 4的新特性,并提供从Ext JS 3迁移到最新版本的策略和技巧。此书于2011年由Packt Publishing首次出版,是学习...

    Extjs portal 应用初探

    开发者可以通过继承Ext.container.Container类来创建自定义portlet,然后添加各种控件如按钮、表格、图表等。Portlet之间的通信可以通过事件系统或者全局应用级别的管理器来实现。 在"mms.html"文件可能是一个示例...

    GWT通信机制初探

    标题 "GWT通信机制初探" 指的是探讨Google Web Toolkit (GWT) 的通信方式,这是一种用于构建高性能、跨浏览器的JavaScript应用程序的开发框架。GWT允许开发者使用Java语言编写前端代码,并自动编译成优化过的...

    Linux核心初探.pdf

    【Linux核心初探】 Linux操作系统的核心是开源世界的重要组成部分,为开发者提供了深入理解操作系统底层机制的机会。这篇文档主要探讨了Linux内核的组织结构以及如何阅读和理解内核代码。 Linux内核源码的顶层目录...

    cognos8.3 集群部署初探

    2. **Ext Dispatcher配置**:扩展调度器的配置,用于定义集群成员。这里的顺序很重要,应按照服务器的实际排列顺序来设置。 **四、集群效果检查与参数调整** 部署完成后,需要检查集群是否按预期工作,包括查看服务...

    ExtJs资料大杂烩

    EXT_JS实用开发指南_个人整理笔记.docx ext-zh-help.pdf Ext2[1].0框架的Grid使用介绍.pdf ...第1章 WEB如此美丽,初探Ext JS.pdf 强大的EXT最新使用手册(中文).doc 深入浅出Ext_JS:数据存储与传输.doc

    linux文件系统故障与修复初探

    Linux系统ext2文件恢复演示,以下测试基于Linux系统EXT2文件系统进行演示

    ExtJS开发参考资料

    5. **第1章 WEB如此美丽,初探Ext JS.pdf.pdf** & **第2章 Ext JS 3.0实例入门.pdf.pdf**: 这两份资料可能是某一本书的章节,详细介绍了Web开发的美和Ext JS 3.0的实例应用。它们将帮助读者理解Ext JS在构建富...

    UBOOT-初探

    **UBOOT初探** UBOOT,全称是Uniform Bootloader,中文通常译为“统一引导加载器”,是一个广泛应用于嵌入式系统中的开源引导加载程序。它的主要任务是在操作系统(如Linux)启动前,完成硬件初始化,加载内核映像...

    Longhorn初探 轻松实现企业级持久化存储 .pdf

    磁盘应使用ext4或xfs文件系统,并且建议使用独立磁盘以提高性能。在安装过程中,可以使用Longhorn提供的环境检查脚本来验证配置的准确性。 Longhorn提供了多种安装方式,包括使用HELM、Rancher Catalog以及Kubelet...

    Restlet edition for Java SE firstSteps

    《Restlet Edition for Java SE初探:开启RESTful之旅》 在Java开发领域,当我们谈论RESTful服务时,经常会提到一个强大的工具——Restlet。它是一个完全基于Java的开源框架,专为构建REST(Representational State...

    详解webpack自定义loader初探

    name: '[name].[ext]?[hash]', }, }, ], }, }; ``` **如何自定义Loader?** 创建自定义 Loader 非常简单,只需要编写一个 Node.js 模块,并导出一个函数。这个函数接收源代码作为参数,并可以对其进行处理。...

    MIPS-linux-1.1.68

    《MIPS架构下的Linux系统初探:从1.1.68版本说起》 MIPS(Microprocessor without Interlocked Pipeline Stages,无互锁流水线级微处理器)是一种精简指令集计算机(RISC)架构,广泛应用于嵌入式系统、路由器、...

    nodejs入门到实战-02-webserver介绍和express框架初探

    Node.js 是一种基于 Chrome V8 引擎的 JavaScript 运行环境,它允许开发者使用 JavaScript 语言进行服务器端编程。在本节中,我们将探讨如何使用 Node.js 创建一个简单的静态 Web 服务器,并初步接触 Express 框架,...

    林纽克斯源代码

    至于文件系统,Linux 0.11支持了ext(扩展文件系统),这是早期Linux广泛使用的文件系统之一。文件系统管理着磁盘上的数据组织,提供文件的创建、删除、读写等功能,并且支持目录结构,使得用户可以方便地管理和查找...

    Android Context初探

    作为一个Android新手,每次看到使用Context作为参数时,都有点焦虑,有时候传this就可以,有时候又不行,不知道为什么可以,为什么又不可以,根本原因还是对Context是一知半解,偏偏很多地方用到Context作为参数,...

Global site tag (gtag.js) - Google Analytics