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

Ext 解说(二)

阅读更多
关于YUI-EXT 变为 EXT的话题让人纷说已久,而又过了短短几日,EXT 又紧锣密鼓的发行了Alpha 3。

从YUI-EXT0.40 到 EXT1.0Alpha2,Jack向YUI挑战 ,EXT lib支持JQuery,
可以完全可以独立于YUI了。不过这次,Jack似乎又一次开始新一轮的自我挑战。1.0Alpha3版本开始增加了Prototype 和ScriptAculous,真是让人迫不及待。

好,还是先看看 的例子。 这次不用帖代码了,官方出的指南已经很详细了。
教程:http://www.extjs.com/en/tutorial/introduction-ext

毕竟是个入门性的,要玩些花样还得看API (可惜JACK的API-DOC还没来得及更新到最新) 。
教程中:Grid实现

{
var myData = [
['Apple',29.89,0.24,0.81,'9/1 12:00am'],
['Ext',83.81,0.28,0.34,'9/12 12:00am'],
['Google',71.72,0.02,0.03,'10/1 12:00am'],
['Microsoft',52.55,0.01,0.02,'7/4 12:00am'],
['Yahoo!',29.01,0.42,1.47,'5/22 12:00am']
];

var ds = new Ext.data.Store({
proxy: new Ext.data.MemoryProxy(myData),
reader: new Ext.data.ArrayReader({id: 0}, [
{name: 'company'},
{name: 'price', type: 'float'},
{name: 'change', type: 'float'},
{name: 'pctChange', type: 'float'},
{name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'}
])
});
ds.load();

var colModel = new Ext.grid.ColumnModel([
{header: "Company", width: 120, sortable: true, dataIndex: 'company'},
{header: "Price", width: 90, sortable: true, dataIndex: 'price'},
{header: "Change", width: 90, sortable: true, dataIndex: 'change'},
{header: "% Change", width: 90, sortable: true, dataIndex: 'pctChange'},
{header: "Last Updated", width: 120, sortable: true,
renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}
]);

var grid = new Ext.grid.Grid('grid-example', {ds: ds, cm: colModel});
grid.render();
grid.getSelectionModel().selectFirstRow();
});

Grid变化很大,从这里可以看出它和0.33,0.40的差别了。整个数据的是通过DataStore对象来完成的,数据读取通过XXXReader完
成,(这里是ArrayReader,还有JsonReader,XHReader等)变单元格格式设置ColumnModel完成(任何数据源都一
样),较原来稍有清晰(不然Jack也不会花那么大力气去改了,但真正的出发点是否还有其他??)

那这里也可以很方便的通过通过reader来实现。其他什么超连接啊,input啊都可以那么做。
增加一个function

function renderCheckBox(id){
return String.format(' type="checkbox" id={0} );
/ 然后,增加红色部分。这样就会下在 Company每列前面多了个CheckBox
colModel = new Ext.grid.ColumnModel([
{header: "Company", width: 120, sortable: true, dataIndex: 'company',renderer: renderCheckBox},
{header: "Price", width: 90, sortable: true, dataIndex: 'price'},
{header: "Change", width: 90, sortable: true, dataIndex: 'change'},

{header: "% Change", width: 90, sortable: true, dataIndex:
'pctChange'},{header: "Last Updated", width: 120, sortable: true,
renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex:
'lastChange'} ]);

另外我们还可能会用到分页(在官方的Example里面 可以看到例子)。在1.0中,Jack是努力简化了Grid的操作,这里对分页处理也比以前简单了。

var gridFoot = grid.getView().getFooterPanel(true);
var pagbar = new Ext.PagingToolbar(gridFoot, ds, {pageSize: 20});
pagbar.add('-', {pressed: true, enableToggle:true, text: 'Detailed
View',cls: 'x-btn-text-icon details', toggleHandler: toggleCheckBox
});
ds.load({params:{start:0, limit:20}});


可以在官方的例子中看到更详细的。
http://www.yui-ext.com/deploy/ext-1.0-alpha3/examples

如果再玩复杂一点就是一些自定的操作, grid.on的事件操作啊,通篇一律的JS回调操作。
数据更新采用 Ext.data.Connection(); 表单采用 = Ext.form; /
这样几本能完成一个企业级的Grid应用了,分页编辑,提交。 稍微酷一些可结合 GridEditor

Ext 的代码质量也非常不错,可惜大的方面玩玩能揣度个八九不离十,但真要西子到每个API如何使用,为什么这么写,光凭自己现在的JS水平,后面还有很长一段路....先扯到这继续关注。

powered by performancing firefox

分享到:
评论
2 楼 zyf0808 2007-09-14  
基本上扒的官方的代码,自己的部分似乎有错误
function renderCheckBox(id){
return String.format(' type="checkbox" id={0} );
一个单引号,函数还没有结束的}
1 楼 xinghai017 2007-08-16  
  你太牛B了

相关推荐

    SoftICE命令中文解说

    12. **高级命令与扩展**: 讲解了如`EXT`, `EXTC`, `EXTD`等高级命令,以及如何利用SoftICE的扩展功能。 13. **调试多线程程序**: 针对多线程环境,介绍如何在SoftICE中进行同步和互斥调试。 14. **与IDE集成**: ...

    Linux文件系统目录结构的详细解说2.pdf

    Linux 文件系统目录结构的详细解说 Linux 文件系统目录结构是 Linux 操作系统的根目录结构,它是 Linux 文件系统的组织者,也是最上级的领导者。 Linux 文件系统的目录结构可以用树形结构来形象地描述。在 Linux ...

    实例解说fdisk使用方法

    创建或修改分区后,需要使用`mkfs`命令来格式化分区,如 `mkfs.ext4 /dev/sda1` 将分区格式化为EXT4文件系统。 9. **挂载分区**: 创建并格式化分区后,需要将其挂载到文件系统中的某个目录,例如: ```bash ...

    实例解说Linux中fdisk分区使用方法

    `fdisk`不仅可以帮助用户划分磁盘空间,还可以为每个分区指定文件系统类型,如`Linux`、`fat32`、`ext4`、`Linux swap`、`fat16`等。 值得注意的是,使用`fdisk`进行分区操作只是整个过程的第一步,还需要对分区...

    文图讲解BIOS设置各种问题解说.docx

    3. **Ext.Clock (CPU/AGP/PCI)**:这是设置CPU外频的地方。用户可以输入100到412MHz之间的值,每次增加1MHz。建议逐步增加,以测试CPU的稳定工作频率。设置完成后按回车确认。 4. **Multiplier Factor (倍频设置)**...

    创建及挂载文件

    fdisk 的使用方法可以参考《实例解说 fdisk 使用方法》。 二、存储设备进行格式化 在 Linux 中,创建文件系统是非常重要的一步。我们可以使用 mkfs 等工具来创建文件系统。mkfs 可以创建多种类型的文件系统,如 ...

    VM下安装redhat图解

    本文将详细介绍如何在VMware虚拟机环境下安装Red Hat Linux 9.0操作系统,并配有详细的图文解说,旨在帮助读者顺利地在虚拟环境中搭建Red Hat Linux 9.0系统。 #### 二、准备工作 在开始安装之前,需要准备以下几项...

    javascrip上百技术总集

    介绍一下给sina博客加背景音乐的办法 【Blog】再次解说博客加音乐的办法 张孝祥JavaScript教程笔记:HTML基础 张孝祥JavaScript教程笔记:HTML基础(二) 张孝祥JavaScript教程笔记:HTML基础(三)-...

    Linux那些事儿系列

    在这个系列中,复旦大学的fudan_abc将这些概念通过生动的实例和有趣的解说呈现出来,使得读者能够更好地理解和掌握Linux内核的工作原理。通过学习这些内容,你不仅能够深入理解Linux系统,还能提升你在设备驱动开发...

    【RT-Thread作品秀】智能管家精灵-电路方案

    软件框架说明(介绍应用所采用的软件方案框图、流程图等,并加以解说)软件部分也相对简单,基于ART-PI 的WiFi样例程序,加上几个独立的模块(流程图见文档) 按键扫描模块 OLED数据显示模块 DHT11设备温湿度读取模块 ...

Global site tag (gtag.js) - Google Analytics