现在又在做一个二次开发.(上回是jeecms,这回是G4Studio)。写这篇文章的目的是理清自己的思路,同时积累些二次开发的心得。
二次开发一般大家都是找个合适的开源程序加以运用,来实现快速开发的。
一开始接触,总是喜欢“东张西望”一会,可能是我以前没有做经验总结的原因。首先,我们就要找到核心部分,即最重要的配置文件类似于web.xml(在G4Studio中是struts-config.xml)运气好的话,里面会有注释的,不好的话,一般从那些名字可以看出一些名堂出来的。往小的方向看:关键是要弄懂你自己要做的那部分,对整体的印象要求不是很高。往大的方向看:要基本弄懂这个项目大体框架,怎么实现的,构成的,哪些功能主要是在哪个项目位置,怎么分布的。
我自己接触地不是很多,只能谈谈自己知道的东西。
公共部分:一般至少会包含一个常量类,以及公共方法类(像选择弹窗,字典下拉列表)
页面部分:aaa.js和aaa.jsp
aaa.jsp里面主要是import一些需要的js,还有一些数据的过度
页面最重要的内容是在js里面:
首先是个Ext.onReady.(在ExtJs库文件及页面内容加载完后,ExtJs就会执行onReady里面的函数)。然后就是那个函数里面就是真正的内容了:(我谈的是我自己接触的,仅供借鉴观赏)
1.一个Ext.form.Form.FormPanel,一种专门用于管理表单中输入字段的布局,用来提供搜索参数,实现搜索功能。
var queryForm = new Ext.form.FormPanel({ region : 'north', title : '<span class="commoncss">查询条件</span>', collapsible : true, labelWidth : 50, labelAlign : 'right', bodyStyle : 'padding:3 5 0', buttonAlign : 'center', height : 95,//65+行数*30 items : [{}], buttons : [{ text : '查询', iconCls : 'previewIcon', handler : function() { //查询方法 } }, { text : '重置', iconCls : 'tbar_synchronizeIcon', handler : function() { xxxForm.getForm().reset();//表单重置 } }] });
参数:region :布局的位置(如north)
title :标题
collapsible :是否可以折叠
labelAlign:标签对齐方式
items :一个独立的容器(里面可以放置隐藏域,文本框,下拉列表等)
2.一个Ext.grid.ColumnModel,用来显示搜索出的结果
var cm = new Ext.grid.ColumnModel([ rownum, { header : 'ID', dataIndex : 'id', hidden : true, sortable : true }, { header : 'ID', dataIndex : 'id', hidden : true, sortable : true }, { header : 'ID', dataIndex : 'id', hidden : true, sortable : true }, { header : 'ID', dataIndex : 'id', hidden : true, sortable : true }, { header : '备注', dataIndex : 'memo', hidden : false, sortable : true }]);
里面的构造参数是一个config组成的数组,参数有:
header:头部名称
dataIndex :store中药绑定的字段名称
sortable:是否支持排序
hidden:是否隐藏
renderer :function 可以使用这个构造参数格式化数据(不是很懂,直接用上了)
3.一个Ext.data.Store,是Ext中用来进行数据交换和数据交互的标准中间件,作用是:从后台获取数据并将其转换成Record供页面使用。(即页面的grid等就可以使用了) 创建完毕之后,执行store.load()就是实现这个转换过程。
var store = new Ext.data.Store({ //获取数据的方式 proxy : new Ext.data.HttpProxy({ url :'请求链接' }), reader : new Ext.data.JsonReader({ totalProperty : 'TOTALCOUNT', root : 'ROOT', //json中列表数据根节点 }, [{ name : 'id'//对应字段name }, { name : 'id' }, { name : 'id' }, { name : 'id' }, { name : 'id' }, { name : 'id' }, { name : 'id' }]) });
通过proxy从某个路径获取原始资源,然后再通过reader转化成record实例(分页的话,用 totalProperty记录下总条数)
4.一个new Ext.PagingToolbar 分页工具栏
var bbar = new Ext.PagingToolbar({ pageSize : number, store : store, displayInfo : true, displayMsg : '显示{0}条到{1}条,共{2}条', plugins : new Ext.ux.ProgressBarPager(), //分页进度条 emptyMsg : '没有符合条件的记录', items : [ '-', ' ', combo ]//combo为你定义的下拉列表 });
pageSize : 总条数
displayMsg : '显示{0}条到{1}条,共{2}条',
emptyMsg : "没有符合条件的记录",
items 一般里面包含着个下拉列表
对这个下拉列表进行事件监听:
combo.on("select",function(){})实现store的reload
5.一个Ext.Toolbar表格工具栏 主要属性items,一般是在这里提供,新增,修改,删除,刷新等功能
items : 用到的参数有:text、iconCls、id、handler
var tbar = new Ext.Toolbar({ items : [{ text : '新增', iconCls : 'addIcon', id : 'id_tbi_add', handler : function() { addInt(); } },{ ......//按钮属性 handler : function() { //要调用的方法 } }] });
6.一个Ext.grid.GridPanel 最重要的表格实例
我们在这里将store、cm、tbar、bbar扔进去,当然你还有其他一些属性
var grid = new Ext.grid.GridPanel({ title : '', height : 360, id : 'id', autoScroll : true, frame : true, region : 'center', store : store, // 数据存储 stripeRows : true, // 斑马线 cm : cm, // 列模型 tbar : tbar, // 表格工具栏 bbar : bbar,// 分页工具栏 viewConfig : {// 不产横向生滚动条, 适用于列数比较少的情况 forceFit : true }, loadMask : { msg : '正在加载数据,请稍等...' } });
剩下的就是一些监听事件,及操作方法的实现像新增、查询、重置、删除等几个基本操作
相关推荐
随便玩玩的EXTJS3.1的一个页面初学者可以看看, 可以用来学习学习。内容还是很丰富的。随便玩玩的EXTJS3.1的一个页面初学者可以看看, 可以用来学习学习。内容还是很丰富的。
extjs界面生成,页面设计,可以用可视化的方式,生成一套extjs系统界面
总的来说,"EXTJS图书管理系统页面(JAVA)"是一个结合了EXTJS前端技术和Java后端服务的项目,旨在提供一个高效、易用的图书管理平台。通过EXTJS的组件和API,开发者可以快速构建出功能丰富的用户界面,同时利用Java...
用extjs写的页面例子,是一个系统,很合适初学者学习
博文链接指向的是一个ITEYE博客文章,虽然具体内容无法在当前环境中查看,但我们可以推测博主可能分享了关于如何使用ExtJS 4开发静态页面的技巧、示例代码或者常见问题解决方案。 在压缩包的文件名称列表中,我们有...
EXTJS页面编辑器是一款专为EXTJS开发人员设计的强大工具,它极大地简化了EXTJS界面的构建过程,使得开发者能够快速、高效地创建出复杂的Web应用程序界面。EXTJS是一种流行的JavaScript框架,以其丰富的组件库、可...
新手学习,初学extjs时用刚刚好,里边有三个例子,还有一个我自己写的例子(简单粗暴动态菜单),还有一个中文API
EXTJS 是一个基于JavaScript的富客户端应用框架,主要用于构建企业级的Web应用程序。EXTJS 提供了一套完整的组件模型、数据绑定机制、丰富的用户界面控件以及强大的图表功能,使得开发者能够创建出交互性强、用户...
标题中的“extjs 登录页面+验证码”表明我们要讨论的是使用ExtJS框架构建的一个登录页面,其中包含了验证码功能。ExtJS是一个流行的JavaScript库,用于构建桌面级的Web应用程序,它提供了丰富的用户界面组件和强大的...
ExtJS项目 一个博客系统 ExtJS项目 一个博客系统
ExtJS 是一个强大的JavaScript应用程序框架,它提供了丰富的用户界面组件和功能,用于构建富客户端Web应用。在ExtJS中,图标(icon)是用于增强UI视觉效果和用户体验的重要元素。这些图标通常用在按钮、菜单项、工具...
用extjs4写的登录页面,希望对你有用,适合初学者
例如,在 ExtJS3 中,我们可以使用以下代码来定义一个类: ```javascript Ext.ux.PostStore = Ext.extend(Ext.data.Store, { constructor: function(params) { // ... } }); Ext.reg('PostStore', Ext.ux....
ExtJS图标库是一个集合了ExtJS框架中常用的各种图标资源,这些图标在开发基于ExtJS的应用程序时常常被用于按钮、菜单、工具栏等界面元素,以提供视觉上的指示和操作提示。ExtJS是一个功能丰富的JavaScript UI框架,...
在"extjs2.0 画的一个带查询条件和查询结果的页面"这个主题中,我们主要探讨如何使用ExtJS 2.0版本来设计一个具有搜索功能的用户界面。这个界面包括查询条件输入区域和展示查询结果的区域。 首先,我们需要了解...
这段代码创建了一个`Panel`,其中包含一个`GridPanel`,并配置了`Store`来从`data.json`加载数据。 接下来,`TreePanel`是用来展示树形结构数据的组件,常用于文件系统或组织结构的展示。与`Ext.Panel`类似,`...
在EXTJS中,不同页面间的通信是一个常见的需求,特别是当需要在不经过服务器的情况下传递数据时。这篇博客"EXTJS 不同页面之间的传值问题(数据不经过后台,通过页面取得)"探讨的就是如何在EXTJS应用的不同视图间...
本项目将讲解如何使用ExtJs(一个强大的JavaScript框架)结合DWR(Direct Web Remoting,一种允许JavaScript与Java后端进行实时通信的技术)来实现页面的登录功能。通过这种方式,我们可以创建一个高效、用户友好的...
总的来说,“开发ExtJS程序可查看页面源代码”这个资源文件将帮助开发者在调试和优化ExtJS应用时更有效地工作。掌握查看源代码的方法,结合使用开发者工具和专用的ExtJS工具,能够提高问题定位的准确性和开发效率,...
extjsDemo2 form panel 一个extjs的demo。1、描绘了表格的属性;2、一个简单的页面布局。供参考。