[size=small]
上一篇中提到了列表显示、增加、删除。这篇说下修改和条件查询。
转载请注明出处: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]
- 大小: 96.3 KB
分享到:
相关推荐
二、Ext.Ajax.request方法 Ext.Ajax.request方法是Ext提供的一种异步调用后台服务的方式,该方法可以将前台的请求发送到后台,并将后台的响应返回到前台。该方法可以传递参数,例如url、params、success、failure等...
7. **C#服务器端API**:EXT.NET允许开发者使用C#在服务器端直接操作组件,与.NET框架无缝集成,提高了开发效率。 8. **MVC模式**:EXT.NET支持Model-View-Controller(MVC)设计模式,有利于代码组织和维护,提高...
标题 "Ext与后台(一)" 暗示了这篇博客文章可能主要关注的是ExtJS框架与后端服务器之间的交互。ExtJS是一个流行的JavaScript库,用于构建富客户端应用程序,而这里的“后台”可能指的是服务器端的技术,如PHP、Java...
在"ext前后台交互实例"中,JSON扮演着至关重要的角色,作为数据载体,在前端展示层与后端逻辑层之间架起了一座桥梁。 ### JSP页面与JSON的交互 JSP(JavaServer Pages)是一种用于生成动态网页的技术,它允许将...
在"EXT后台管理"系统中,EXT主要负责前端的展示和交互,通过AJAX技术与后端PHP进行通信,实现数据的动态加载和更新。PHP作为服务器端语言,处理HTTP请求,执行业务逻辑,如数据的增删改查、验证、权限控制等。PHP还...
### Ext与后台服务器的交互操作 #### 一、概述 在现代Web开发中,前端框架如Ext JS(简称EXT)扮演着重要的角色,特别是在企业级应用中。Ext JS以其丰富的UI组件库、强大的数据处理能力和良好的用户体验而受到...
Ext后台模板是一款基于Ext JS框架开发的管理界面模板,它以简洁、清晰的布局和设计为特点,旨在提供高效、易用的后台操作系统。Ext JS是一个强大的JavaScript库,专用于构建富客户端应用,尤其适用于创建数据密集型...
后台模板是为了提供给管理员或内部员工使用的,与前端用户界面相比,更注重功能性和效率,而不是视觉吸引力。然而,随着现代设计趋势的发展,后台模板也开始追求美观和用户体验。 “绚丽的使用Ext做的”模板,可能...
6. **API接口集成**:EXT后台模板通常需要与后端服务器进行交互,实现数据的获取和提交。EXTJS 提供了AJAX和Store组件来处理与服务器的JSON或XML数据交换,这需要开发者理解RESTful API的设计和使用。 7. **主题和...
EXT后台简单布局,很好的,好用!!!!
"EXT后台经典实例"指的是使用EXT与后端服务器进行交互的典型应用场景,通常涉及到Ajax通信、数据模型、Store和Grid等核心概念。 在EXT中,数据通常是通过Store来管理的。Store连接到后端服务器,负责加载、保存和...
### Ext与后台数据库交互知识点详解 #### 一、Ext中常用的类 在Ext框架中,为了更好地处理数据和用户界面的交互,引入了一系列强大的类来简化开发过程。 ##### 1.1 Ext.data `Ext.data`是Ext框架的核心模块之一...
EXTJavaScript 是一种基于Web的前端开发框架,专为构建企业级后台管理界面而设计。它以其丰富的组件库、强大的数据网格、灵活的布局和高度可定制性而受到开发者们的青睐。EXTJavaScript 的核心是EXTJS,它是一个用纯...
Ext简单后台布局,分享给大家
在"Ext.NET后台分页增删改"这个主题中,我们将探讨如何利用Ext.NET实现数据库后台分页、树形视图操作以及Grid面板的CRUD(创建、读取、更新和删除)功能。 首先,让我们深入了解一下后台分页。在Ext.NET中,为了...
一个基于EXT的ASP.NET后台管理框架例子源码程序
纯Ext搭建的模板,网页右键不能查看源码。内含联系方式,可以联系我。
最终,我们使用Ext.grid.GridPanel显示了从后台获取的数据。 ExtJS框架提供了许多强大的功能和组件,例如表格控件、树形控件、表单控件等,使开发者能够快速构建RIA应用程序。 知识点: 1. ExtJS框架的基本概念...
【Ext模拟Windows桌面】是一款基于Java的Web应用后台模版,它利用了ExtJS库的强大功能,将传统的网页界面设计成类似Windows操作系统的工作环境。这个模版为用户提供了一种直观且熟悉的交互体验,使得在Web应用程序中...
Ext后台管理系统模版_html