- 浏览: 248729 次
- 性别:
- 来自: 深圳
-
文章分类
最新评论
-
sweed0:
为何每一段代码都重复一次呢?
spring注解实例二 -
Gary_Huangpf:
- - 插件报错啊
Ext前台分页 -
ddvk2007:
版主 我想請問你所說的mapreduce是hadoop的還是g ...
MapReduce中的Shuffle和Sort分析 -
人可木:
好问章,楼主写的相当详细。。。多谢。。。
findbugs插件的安装与应用 -
hautbbs:
按照博主的方法启动调试出现jvm terminated.Ex ...
10分钟学会使用MyEclipse断点调试js
上一篇中提到了列表显示、增加、删除。这篇说下修改和条件查询。
转载请注明出处:http://simplehumn.iteye.com/blog/486269
2.2修改
第一种方式
先贴代码
tbar里的items这样写的
...... { text:'<img src="/lncrm/resources/images/img/cog_edit.png"/>修改' , tooltip : '修改会期', handler : hqUpdate } ......
hqUpdate方法,弹出窗口并初始化数据
//修改会期 var hqUpdate = function(){ var record = sm.getSelected(); if(record&&sm.getCount()==1){ form = dhhhqWindow(record,"update"); form.getForm().reset(); form.getForm().loadRecord(record);//修改时带入数据 }else{ Ext.Msg.alert('友情提示','您必须且只能选择一行数据以便进行办理!'); } }
窗口写成一个function,利于对象的销毁和创建,方法里传了2个参数,做判断或提交验证(数据库层),关于界面的allowBlank:false验证不多说,网上很多例子。最后附上弹出窗口的图片附件。
var widthValue = 150; var nowYear = new Date().getYear(); // 日期范围代码 Ext.apply(Ext.form.VTypes, { daterange : function(val, field) { var date = field.parseDate(val); // We need to force the picker to update values to recaluate the // disabled dates display var dispUpd = function(picker) { var ad = picker.activeDate; picker.activeDate = null; picker.update(ad); }; if (field.startDateField) { var sd = Ext.getCmp(field.startDateField); sd.maxValue = date; if (sd.menu && sd.menu.picker) { sd.menu.picker.maxDate = date; dispUpd(sd.menu.picker); } } else if (field.endDateField) { var ed = Ext.getCmp(field.endDateField); ed.minValue = date; if (ed.menu && ed.menu.picker) { ed.menu.picker.minDate = date; dispUpd(ed.menu.picker); } } /* * Always return true since we're only using this vtype to set the * min/max allowed values (these are tested for after the vtype test) */ return true; } }); //新增或修改会期弹出窗口 var dhhhqWindow = function(record,update){ //会期信息 var hqInfo = new Ext.form.FieldSet({ title: '会期信息', collapsible: true, autoHeight:true, bodyStyle:'width:100%;', labelWidth : 100, labelAlign : 'right', items:[{ layout:'column',//从左往右的布局 items:[{ columnWidth:.5, layout:'form', //labelWidth : 60, items:[{ xtype : 'textfield', fieldLabel : '会期编号', allowBlank : false, name : 'dhhhqCommonId', width : widthValue },{ xtype : "datefield", id:'dhhhqStartDate', name : 'dhhhqStartDate', fieldLabel : "会期开始日期", emptyText : 'YYYY-MM-DD', allowBlank : false, width : widthValue, vtype : 'daterange', format : 'Y-m-d', // 指定日期格式,年-月-日 endDateField : 'dhhhqEndDate' }] },{ columnWidth:.5, layout:'form', //labelWidth : 60, items:[{ xtype : 'textfield', fieldLabel : '会期名称', allowBlank : false, name : 'dhhhqName', width : widthValue },{ xtype : "datefield", id:'dhhhqEndDate', name : 'dhhhqEndDate', fieldLabel : "会期结束日期", allowBlank : false, emptyText : 'YYYY-MM-DD', width : widthValue, format : 'Y-m-d', // 指定日期格式,年-月-日 // value:new Date(), //默认当前时间 vtype : 'daterange', startDateField :'dhhhqStartDate' }] }] },{ layout:'column',//从左往右的布局 items:[{ columnWidth:.6, layout:'form', items:[{ xtype : 'textarea', fieldLabel : '会期说明', name : 'dhhhqDescribe', regex:/^.{0,100}$/, regexText:'会期说明不超过100字', width : 350 }] },{ columnWidth:.3, layout:'form', items:[{ html : '(会期说明不超过100字)' }] }] }] }); // 弹出窗口“订货会会期”的按钮集合 var hqButtons = [{ xtype : 'submit', text : '修改', handler : function() { if(dhhhqForm.getForm().isValid()){ dhhhqForm.getForm().submit({ url:'../../om/dhhDate.do', params:{method:'saveOrUpdateDhhDate'}, method:'post', waitMsg:'正在保存,请稍等...', success:function(form,action){ hqWindow.destroy(); Ext.Msg.alert("友情提示","保存目标成功!", function(){ hqStore.reload(); },this ); }, failure:function(form,action){ Ext.MessageBox.alert("友情提示", "服务器出现错误请稍后再试!"); } }); } } }, { text : '取消', handler : function() { hqWindow.destroy(); } }]; var dhhhqForm = new Ext.FormPanel({ bodyStyle : 'padding:5px', frame : true, name : 'dhhhqForm', layoutOnTabChange : true, autoHeight : true, autoWidth : true, labelWidth : 100, labelAlign : 'right', items : [hqInfo] }); // 将表单放到一个窗口中,并显示 var hqWindow = new Ext.Window({ title : "会期信息", width : 850, height : 420, // autoHeight : true, autoScroll : true, collapsible : true, maximizable : true, layout : 'fit', modal : true, items : [dhhhqForm] }); hqWindow.show(); return dhhhqForm; };
说明:
Ext.apply(Ext.form.VTypes, {
daterange : function(val, field) {。。。。。。});
这段的意思是,让日期控件可以控制2个日期“开始日期”不小于“结束日期”,使用方法如"会期开始日期"、"会期结束日期"。
修改时初始化的数据是显示grid列表时和json串一起传到前台,var record = sm.getSelected();这样选中这行把record带入弹出窗口就能初始化。grid的store里可以传你想要的任何数据,也就是说 (var hqStore = new Ext.data.JsonStore({fields:[......]});)数据里的fields的项数可以比(var cm = new Ext.grid.ColumnModel([......]);)表头的项数多,修改时初始化的数据都应经在界面的grid里了。
第二种方式
上面的这种方法是,查询时把数据以json形式都传到前台grid的store里,然后修改或查看详情时,不再查询数据库,直接从界面拿数据。
但是这种方法有时候不能满足业务需求,下面介绍另一种方式:打开弹出窗口时,调后台方法初始化数据。
修改按钮有所改变,加了一个hqForm.load({......})
var dhhButton = [{ xtype : 'submit', text : '修改', handler : function() { if(selectDhhForm.getForm().isValid()){ dhhWindow.destroy(); var dhhId = selectDhhForm.form.findField('javaid').getValue(); var hqForm = dhhhqWindow(); hqForm.load({ url : '../../om/dhhDate.do?method=initDhhDate&dhhId='+ dhhId, waitMsg : '正在载入数据,请稍等...', method:"get", success:function(form,action){}, failuer : function(){ Ext.Msg.alert('友情提示', '数据加载失败请重试!'); } }); } } }];
弹出窗口的formpanel也有所变化
var dhhhqForm = new Ext.FormPanel({ bodyStyle : 'padding:5px', frame : true, name : 'dhhhqForm', layoutOnTabChange : true, autoHeight : true, autoWidth : true, labelWidth : 100, labelAlign : 'right', reader : new Ext.data.JsonReader({ root:'root' }, [ {name: 'dhhId', mapping:'dhhId'}, {name: 'commonId', mapping:'commonId'}, {name: 'brand', mapping:'brand'}, {name: 'dhhStartDate', mapping:'dhhStartDate'}, {name: 'dhhEndDate', mapping:'dhhEndDate'}, {name: 'name', mapping:'name'}, {name: 'area', mapping:'area'} ]), items : [hqInfo] });
多了个reader : new Ext.data.JsonReader({}),reader里的值就是界面想要的值,后台以json串形式发过来,这里按照这种格式接收就OK了。
2.3查询
这里的查询是指,界面输入或选择一些条件,然后点击查询按钮,显示符合条件的数据。至于条件跟formpanel差不多,点击按钮的时候也是提交form,这里不在写查询条件的代码。在完成grid列表以后,只需修改一小部分就可以实现查询功能。
以下是查询按钮,hqStore.removeAll();先清掉grid数据,hqStore.baseParams 查询时的参数都写在这里(参考yourgame在javaeye里的一段回复),hqStore的URL里不带任何参数,然后hqStore.reload({params:{start:0,limit:10}});好了到这里查询就OK了,只刷新grid数据界面无刷新。hqStore.baseParams 是关键。
new Ext.Button({ text : '查询', minWidth : 60, handler : function() { hqStore.removeAll(); // 查询时传参数要用这种方式,否则翻页的时候这些参数无效 hqStore.baseParams = {departmentarea : Ext.get('departmentarea').getValue(),status : Ext.get('status').getValue(),status : Ext.get('status').getValue(), dhhYear : Ext.get('dhhYear').getValue(), javaid : Ext.get('javaid').getValue() }; hqStore.reload({params:{start:0,limit:10}}); } })
说明:hqStore.baseParams 里面,前面那个是参数名称name,冒号后面的是值value,多个参数以逗号分开。
[/size]
发表评论
-
js原型
2012-07-26 09:12 903原型是个很微妙的东西,很多人不是很理解,理解了原型对于研究 ... -
一个基于jquery的banner轮播
2012-03-21 10:21 1403一个banner轮播广告。 JavaSc ... -
jquery要怎么写才能速度最快?(转)
2012-03-21 09:52 915很久没有关注jQuery了,最近重新看了一下,看到一些不错 ... -
HTTP协议详解(转载)
2012-02-18 19:17 0什么是HTTP协议 协议是指计算机通信网络中两台计算机 ... -
JavaScript 数组常用操作
2011-10-09 15:43 12651.创建数组只是声明了数组,并不包含具体数据。 Jav ... -
HTML便签大全
2011-08-25 11:19 11171.1 字体样式的应用 字体样式包括:字体族科(font- ... -
不同浏览器的Javascript兼容性总结
2011-08-20 12:56 2768对于大多数程序员而言在平时的编码过程中很少会注意到跨浏 ... -
javascript字符串编码
2011-07-18 15:05 865encodeURI() 函数可把字符串作为 URI 进行编 ... -
js最全的10种跨域解决方案
2011-07-15 09:08 876在客户端编程语言中,如javascript和Action ... -
js内置函数速查
2011-07-15 09:07 15451.document.write("" ... -
javascript优化
2011-07-15 08:55 815javaScript是一门解释性的语言、它不像java、C ... -
Ajax乱码
2011-05-14 14:09 1046使用GET方式提交数据的时候,中文问题很好解决,setRequ ... -
Ext实现添删查改一
2010-04-29 12:48 1436前台: var sm = new Ext.grid.Chec ... -
Ext前台分页
2010-04-29 12:46 2125今天上午测试并实现了Ext的前台分页,参考了网上的资料,使用了 ... -
firebug的使用
2010-02-05 13:21 930什么是Firebug 从事了数 ... -
Ext学习资料大全
2010-02-04 08:47 1280轻松搞定 ExtJS http://download.csdn ... -
FireBug的安装与调试js快速入门
2010-02-03 19:47 3604Javascript的调试,是开 ... -
10分钟学会使用MyEclipse断点调试js
2010-02-03 10:11 4720最近老是被js代码所困扰,故撰此文: 1.在站点下准备 ...
相关推荐
标题“Ext实现添删查改一”涉及到的是使用Ext JS框架进行Web应用开发中的基本操作——添加、删除、查询和修改数据。Ext JS是一个强大的JavaScript库,主要用于构建富客户端的桌面级Web应用,它提供了丰富的组件和...
EXTJS是一种基于JavaScript的富客户端应用开发框架,主要用于构建...通过这个"ext增删查改demo",开发者可以学习到EXTJS如何实现CRUD操作,以及如何处理和展示JSON数据,这对于构建交互式的企业级Web应用非常有帮助。
在“extjs实现增删查改”这个主题中,我们将探讨如何使用ExtJS来实现基本的数据操作功能。 首先,增删查改(CRUD,Create, Read, Update, Delete)是任何数据管理应用的核心功能。在ExtJS中,我们可以利用Grid ...
ext与php增删查改.docx
ext与php增删查改.pdf
根据提供的文件信息,我们可以深入探讨该系统的实现细节及其关键技术点,包括如何利用ExtJS和PHP完成用户管理功能(增删查改)。以下是对这些技术点的详细解释: ### 关键技术点 #### 1. ExtJS简介 ExtJS是一款...
2. **模型定义**: 在ExtJS 3中,使用`Ext.data.Record`来定义数据模型。定义字段名和类型,这将映射到数据库的列。例如,如果你有一个名为`users`的表,你可能需要定义如下模型: ```javascript var User = new...
这个实例结合了Struts2后端框架与ExtJS前端库,实现了基本的数据操作功能——增、删、改、查,这在Web应用开发中是非常基础且重要的。 在Struts2框架中,核心概念包括Action、Result和Interceptor。Action是业务...
《深入理解Extjs与PHP数据交互:实现增删查改》 在Web开发中,前端与后端的数据交互是至关重要的。本文将详细介绍如何利用Extjs框架与PHP进行数据的增删查改操作,帮助开发者更好地理解和应用这两种技术的结合。 ...
在这个"extjs mvvm增删查改模糊查询"主题中,我们将深入探讨如何使用ExtJS的MVVM模式来实现对数据的操作,包括添加、删除、修改和查找,同时结合模糊查询功能,提高用户体验。 首先,MVVM模式的核心在于ViewModel层...
EXT的表格组件(Ext.grid.Panel)支持行级别的编辑,结合行选择器和表单组件,可以方便地实现增删改查操作。表单组件(Ext.form.Panel)用于收集用户输入,并能与数据模型关联,实现数据的双向绑定。 在这个例子中...
在这个"学习使用SQLAlchemy框架,在ORM模式下实现Python与MySQL的连接、结构设计和增删查改"的教程中,我们将深入理解SQLAlchemy的核心概念和使用方法。 首先,让我们从建立Python与MySQL的连接开始。在SQLAlchemy...
java+ext+数据库基础实现增删查改,学习用
这个"Ext+SSH"实现的增删改查例子,其核心流程可能如下: 1. **用户界面**:使用ExtJS创建一个表格,显示从服务器获取的数据。表格可能包含编辑和删除按钮,用户可以通过这些按钮触发操作。 2. **Ajax通信**:当...
2. 删:EXT的表格或树组件可以显示数据列表,用户选择要删除的项,发送删除请求。同样,请求由Struts处理,调用Service层的删除方法,通过Hibernate执行SQL删除语句。 3. 改:用户选择需要修改的记录,在EXT的编辑...
Linux的EXT2(第二扩展文件系统)是早期广泛使用的文件系统之一,特别是在嵌入式系统和Linux服务器上。EXT2的C语言实现是一项技术性极强的任务,涉及到对操作系统底层机制的理解,包括文件系统的结构、inode、超级块...
在IT行业中,"JSP+Ext实现CURD"是一个常见的开发任务,涉及到Web应用的后端和前端交互,用于数据的创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作。JSP(JavaServer Pages)是Java的一种动态网页技术,...
在"Ext左树有表格 增删改查"这个主题中,我们主要关注的是ExtJS如何实现左侧树形结构与右侧表格的交互,以及在这样的布局中进行数据的增、删、改、查操作。 首先,ExtJS中的树形组件(TreePanel)可以用来展示层级...
本文将深入探讨ext4文件系统在“增删改查”这四个基本操作上的实现原理和使用方法。 一、增加(Add) 1. 创建文件:在ext4文件系统中,新建一个文件涉及到在i节点(Inode)表中分配一个新的i节点,并在目录项中...
2. 分页:EXT Grid可以通过配置Paging Toolbar来实现数据分页,这样用户可以在大量数据中轻松浏览。 3. 排序:Grid中的每一列都可以设置为可排序,用户只需点击列头,即可根据该列数据进行升序或降序排序。 4. ...