浏览 5200 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-01
最后修改:2009-11-04
四川国信安教育百杰培训:http://www.gxaedu.com/newsinfo.jsp?newsid=89
1、Ext介绍 最近几年Web2.0发展也非常盛行,其Web 2.0中的Ajax技术也是日趋成熟。而且也诞生了许多Ajax框架,如:ExtJs、JQuery、Dojo等等。他们在各个软件开发领域都各自地发挥自己的特长,在这就简单的介绍一下ExtJs框架。 ExtJs是一个很不错的Ajax框架,它可以用来提供非常华丽的Web客服端应用,使得我们的b/s应用更加具有活力与生命力。在实际的应用中,ExtJs框架可以用在.Net、Java、PHP等各种开发语言当中........ 2、Ext技术 下面给大家举几个由ExtJs技术实现的截图,这些都是来自于官方网站(http://www.extjs.com)实际例子。 具有导航功能的Window窗口,如截图1-1 ExtJs开发的Blog订阅器管理应用,截图1-2 Ext中通过布局管理完成的界面搭建 3、利用Ext组件完成Form和Grid之间的数据传输 这里我们来介绍一下利用JSP+ExtJs完成的Form和Grid之间的数据传输。首先看看截图1-4 从图1-4我们给大家介绍一下该功能。首先,通过ExtJs中的组件Grid将要用的数据读取到Grid表格当中。其次,当鼠标点击Grid表格中一行记录,就在右边将数据填充到ExtJs的另一个组件Form表单中。最后,我们就可以在Form表单中做修改、删除、清空等操作。 下面我们就给出详细代码 (1)建一个form.js文件,这个文件主要是写ExtJs代码 /* * title:表单复杂应用-9 * desc:该表单应用综合Form和Grid之间的数据传输应用之一 * author:administrator * date:2009-10-09 */ Ext.onReady(function() { Ext.QuickTips.init(); Ext.form.Field.prototype.msgTarget = "side"; //初始化数据 var data = [ ['1', '全兴', '酒类', '1992-09-09'], ['2', '骄子', '烟类', '2009-08-07'], ['3', '美好', '食品类', '2009-08-06'], ['4', '奇多', '食品类', '2009-06-07'], ['5', '百事可乐', '饮料类', '2009-03-24'], ['6', '泸州老窖', '酒类', '2009-02-25'] ]; var cm = new Ext.grid.ColumnModel([ {header: '编号', dataIndex: 'id', sortable: true},//设置列可以排序 {header: '名称', dataIndex: 'name'}, {header: '种类', dataIndex: 'desc'}, {header: '生产日期', dataIndex: 'date', type: 'date', renderer: Ext.util.Format.dateRenderer('Y年m月d日')} ]); var store = new Ext.data.Store({ proxy: new Ext.data.MemoryProxy(data), reader: new Ext.data.ArrayReader({},[ {name: 'id'}, {name: 'name'}, {name: 'desc'}, {name: 'date', type: 'date', dateFormat: 'Y-m-d'} ]) }); store.load(); var form = new Ext.form.FormPanel({ id: 'things', title: 'Form和Grid之间的数据传输', labelAlign: 'right', width: 800, layout: 'column', frame: 'true', items: [{ columnWidth: 0.6, layout: 'fit', items: [{ xtype: 'grid', store: store, cm: cm, autoHeight: true, border: false, title: 'Grid表格中的数据', sm: new Ext.grid.RowSelectionModel({ singleSelect: true, listeners: { rowselect: function (sm, row, rec) { Ext.getCmp("things").getForm().loadRecord(rec); } } }), listeners: { render: function(g) { g.getSelectionModel().selectRow(0); }, delay: 10 }, viewConfig: { forceFit: true } }] },{ columnWidth: 0.4, defaultType: 'textfield', autoHeight: true, labelWidth: 90, buttonAlign: 'center', xtype: 'fieldset', defaults: {width: 140}, title: 'Grid表格中的数据对应到From表单中', items: [{ fieldLabel: '编号', name: 'id', readOnly: true },{ fieldLabel: '名称', name: 'name' },{ fieldLabel: '种类', name: 'desc' },{ xtype: 'datefield', fieldLabel: '生产日期', name: 'date', format: 'Y年m月d日' }], buttons: [{ text: '修改' },{ text: '删除' },{ text: '清空', handler: function() { form.getForm().reset(); } }] }], renderTo: 'form' }); (2)创建form.jsp文件,这文件主要是加载ExtJs相关的核心文件和刚刚创建的form.js文件。 <%@ page language="java" pageEncoding="gb2312"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>FormPanel加入到Window窗口中的应用</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <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="../build/locale/ext-lang-zh_CN.js"></script> <script type="text/javascript" src="form.js"></script> </head> <body> </body> </html> 按照上面的步骤就可以完成截图1-4的效果。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |