- 浏览: 655229 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (609)
- java (139)
- 数据库 (107)
- 微信 (23)
- IT生活 (5)
- web前端 (74)
- SSH (11)
- 设计模式 (12)
- 重要资料 (11)
- 其他 (15)
- java技巧 (23)
- 服务器 (9)
- 2D/GUI (3)
- JAVA3D (2)
- ANT (5)
- Apache项目 (19)
- 数据类型 (10)
- 报表 (3)
- Collections (6)
- SQL/JDBC (15)
- 开发类 (6)
- EJB (6)
- Email (6)
- 文件读写 (2)
- 游戏 (0)
- Flex (2)
- Generic (2)
- HIbernate (12)
- I18N (5)
- Java EE (9)
- java ME (4)
- JDK 6 (8)
- JNDI/LDAP (5)
- JSP (7)
- JSTL (2)
- 正则表达式 (2)
- 安全 (2)
- Struts2 (12)
- Spring (4)
- Web服务 (10)
- Xml (1)
- JavaScript (30)
- AJAX (7)
- 验证 (4)
- 上传下载 (1)
- office办公软件 (1)
- Android (2)
- IOS (0)
- Dubbo (3)
- memcached/redis (1)
- 小程序 (1)
- 微信公众号 (0)
最新评论
-
wf_wangfeng:
怎么我用第一种方法不行呢 alert(document.rea ...
当jsp页面完全加载完成后执行一个js函数 -
Lori_Liu:
有帮助,至少可以解决了目前所遇到的问题!谢谢..
当jsp页面完全加载完成后执行一个js函数 -
starbhhc:
String actionMessage = new Stri ...
Java读取txt文件乱码 -
starbhhc:
Sev7en_jun 写道GOOD
客气,互相交流。。
javaeye论坛规则小测验(答案)--star -
Sev7en_jun:
GOOD
javaeye论坛规则小测验(答案)--star
下面为扩张grid的 代码
/**
* @auther huangfeng
* @class Ext.ux.GridExtend
* 通用的grid
*/
Ext.ux.GridExtend=function(config){
Ext.QuickTips.init();
this.config=config;
this.filters=this.config.filters||'';
/**
* @param {String}
* 显示列表的id
*/
this.el=this.config.el||document.body;
/**
* @param {String}
* 读取编辑数据的form的url
*/
this.editUrl=this.config.editUrl;
/**
* @param {String}
* 读取编辑数据的form的url
*/
this.deleteUrl=this.config.deleteUrl;
/**
* @param {String}
* 读取列表数据的url
*/
this.storeUrl=this.config.storeUrl;
/**
* @param {String}
* 保存添加到列表数据的url
*/
this.formSaveUrl=this.config.formSaveUrl;
/**
* @param {String}
* 列表的标题
*/
this.title=this.config.title||'';
/**
* @param {Array}
* 列表顶部状态栏
*/
this.tbar=this.config.tbar||[{//grid顶部栏位
text:'添加', //按钮的名称
tooltip:'添加数据', //鼠标停留在按钮上的提示
iconCls:'add', //按钮图表的类
handler:this.newInfo.createDelegate(this) //处理按钮被点击时触发的时间函数
},'-',{//'-'为多按钮间隔符
text:'删除', //删除按钮的名称
tooltip:'删除数据', //鼠标停留在按钮上的提示
iconCls:'remove', //按钮图表的类
handler:this.handlerDelete.createDelegate(this) //处理按钮被点击时触发的时间函数
},'-',{
text:'导出Excel', //删除按钮的名称
tooltip:'导出Excel', //鼠标停留在按钮上的提示
iconCls:'exportExcel',
handler:this.exportExcel.createDelegate(this) //处理按钮被点击时触发的时间函数
}];
/**
* @param 选择框对象
*/
this.sm=this.config.sm||new Ext.grid.CheckboxSelectionModel({//start Ext.grid.CheckboxSelectionModel
singleSelect:false //是否只能选择一个
});
/**
* @param {Array}
* 列表的栏的前面数据
*/
this.cmDataArrayBefore=[//start Ext.grid.ColumnModel
//defaultSortable:true, //默认情况下为排序
new Ext.grid.RowNumberer(), //数据函数序列号
this.sm
];
/**
* @param {Array}
* 显示的内容是从后台读取出来的数据,所以此数据中的dataIndex属性要与<br>
* 从后台读取的字段要一致
*/
this.cmDataArray=this.config.cmDataArray||[];
/**
* @param {Array}
* 列表的栏的后面数据
*/
this.cmDataArrayAfter=this.config.cmDataArrayAfter||[];
/**
* @param {Ext.grid.ColumnModel}
* 列表的栏位数据
*/
this.cm=this.config.cm||new Ext.grid.ColumnModel(
this.cmDataArrayBefore.concat(this.cmDataArray).concat(this.cmDataArrayAfter)
);//end Ext.grid.ColumnModel
/**
* @param {Array}
* 读取gridStore数据的字段设置数据对象
*/
this.gridStoreFields=this.config.gridStoreFields||new Array();
/*
* 如果this.gridStoreFields中没有数据,把this.cmDataArray中的dataIndex的属性值<br>
* 赋予gridStoreFields数组中对象的name属性值
*/
if(this.gridStoreFields.length==0){
for(var i=0,len=this.cmDataArray.length;i<len;i++){
this.gridStoreFields[i]={name:this.cmDataArray[i].dataIndex};
}
}
/**
* @param {new Ext.data.Store}
* 从后台读取的列表内容
*/
this.gridStore=this.config.gridStore||new Ext.data.Store({//start Ext.data.Store
proxy:new Ext.data.HttpProxy({
url:this.storeUrl //读取数据的url
}),
reader:new Ext.data.JsonReader({//start Ext.data.JsonReader
root:'rows', //存储数据的属性
totalProperty:'results', //总共的页数
id:'uniqueCode' //每行的id值
}, //end Ext.data.JsonReader
this.gridStoreFields)
});//end Ext.data.Store
this.gridStore.load({params:{start: 0, limit: 10}});
/**
* @param {Ext.PagingToolbar}
* 底部状态栏
*/
this.bbar=this.config.bbar||new Ext.PagingToolbar({ //在grid底层添加分页工具栏
pageSize:10, //显示的数据条数
store:this.gridStore, //选择翻页按钮时的加载到grid的数据
displayInfo:true, //设置是否显示分页栏的信息
displayMsg:'显示第 {0} 条到 {1} 条记录,一共 {2} 条',//消息栏的页数信息
emptyMsg:"没有记录" //当没有记录时要显示的信息
});//end bbar
/**
* 如果要设置此参数必须在cm中设置相应的id
*/
this.autoExpandColumn=this.config.autoExpandColumn||'';
/**
* @param {Object}
* 默认情况下有此显现,如果不需要可以为false
* 必须含有下列参数:<br>
* loadingEL {String} 加载页面时显示的内容id<br>
* loadingMaskEl {String} 渐显的内容id<br>
*/
this.loadingMark=this.config.loadingMark||{
loadingEL:'loading',
loadingMaskEL:'loading-mask'
};
/**
* @param {Ext.grid.GridPanel}
* @private
*/
this.grid=this.config.gridStore||new Ext.grid.GridPanel({
//el:this.el, //显示grid对象的层ID.
store:this.gridStore, // grid装载的数据.
viewConfig:{
autoFill:true,
deferEmptyText:'请等待...',
emptyText:'没有数据',
enableRowBody:true
},
sm:this.sm, //在每行数据前添加的一组checkBox
height:Ext.get(this.el).getComputedHeight(),
//autoHeight:true,
loadMask:true,
maskDisabled:true,
cm:this.cm, //设置栏位.
title:this.title, //标题名称.
iconCls:'icon-grid', //标题前的图片css类
autoExpandColumn:this.autoExpandColumn,
plugins: this.filters,
bbar:this.bbar,
tbar:this.tbar
});
this.formFields=this.config.formFields||new Array();
/**
* 双击数据的事件,弹出一个编辑此条数据的层
* @param grid 此列表的对象
* @param rowIndex 在列表中的行数
* @param e 触发此事件的事件对象
*/
this.rowdblclick=this.config.rowdblclick||function(grid, rowIndex, e){
var selectId=this.gridStore.data.items[rowIndex].id;
this.editInfo(selectId);
};
this.grid.on('rowdblclick',this.rowdblclick.createDelegate(this));
this.grid.render(this.el);
//当js加载完毕后删除loading页面并渐显内容
if(this.loadingMark){
setTimeout(function(){
Ext.get(this.loadingMark.loadingEL).remove();
Ext.get(this.loadingMark.loadingMaskEL).fadeOut({remove:true});
}.createDelegate(this), 250);
}
}
Ext.ux.GridExtend.prototype={
/**
* 加载 form表单的数据
* @param selectId 选择此条数据的唯一标识码,此参数发送到后台处理
*/
editInfo:function(selectId){
var form=this.getForm();
form.form.load({//start load 参数设置
url:this.editUrl,
params:{
uniqueCode:selectId
},
waitMsg:'Loading..'
});//end load 参数设置
this.formWindow(form,'编辑');
},
getForm:function(){
//错误信息放在右边
Ext.form.Field.prototype.msgTarget = 'side';
//var formSaveUrl=this.formSaveUrl;
//var formFields=this.formFields;
var formSaveUrl=Ext.clone(this.formSaveUrl);
var formFields=Ext.clone(this.formFields);
//实例化form面板
var form=new Ext.form.FormPanel({//start Ext.form.FormPanel
baseCls:'x-plain',
url:this.formSaveUrl,
frame:true,
id:'form',
items:formFields
});//end Ext.form.FormPanel
return form;
},
/**
* 装form表单的窗口
* @param form 要装载的form
* @param titlePre 标题的前缀
*/
formWindow:function(form,titlePre){
//实例化窗口
this.window=new Ext.Window({//start Ext.Window
title:titlePre+'任务列表',
width:500,
height:500,
minWidth:300,
minHeight:300,
layout:'fit',
//closeAction:'hide',
plain:true,
bodyStyle:'padding:5px',
iconCls:'form',
buttonAlign:'center',
items:form,
modal:true,
buttons:[{ //按钮
text:'保存',
handler:(function(){//start function按钮处理函数
if(form.getForm().isValid()){//表单是否通过交验,通过责提交表单,否则弹出错误窗口
form.getForm().submit({
scope:this,
waitMsg:'保存数据...',
success:function(form,action){
Ext.MessageBox.alert('消息:','保存成功');
this.grid.store.reload();
this.window.close() ;
},
failure:function(form,action){
Ext.MessageBox.alert('有错误:', action.result.errors);
this.window.close() ;
}
});
}else{
Ext.MessageBox.alert('有错误:','表单填写由错误!');
}
}).createDelegate(this)//end function
},{
text:'重置',
handler:function(){//start function按钮处理函数
form.getForm().reset();
}//end function
}]
});//end Ext.Window
//显示窗口
this.window.show();
},
/**
* 添加列表新数据的函数
*/
newInfo:function(){//start newTableInfo
this.formWindow(this.getForm(),'添加');
},//end newTableInfo
/**
* 删除数据,并把此数据的唯一标识码发送到后台
*/
handlerDelete:function(){//start deleteRecord
this.sendId(this.deleteUrl);
},//end deleteRecord
sendId:function(url){//start deleteRecord
var ids=new Array(); //存放uniqueCode的数组
var records=this.grid.selModel.selections.items;//grid中被选择的数据,类型为Array
for(var i = 0, len = records.length; i < len; i++){
ids[ids.length]=records[i].id; //把数据id赋予ids数组中
}
Ext.Ajax.request({ //调用Ajax发送请求到后台
scope:this,
url:url, //删除grid数据的url.
success:function(transport){ //处理成功后返回的函数
var oXmlDom=transport.responseText;
if(oXmlDom!=''){
var content=eval(oXmlDom);
Ext.MessageBox.alert("有错误:",content.errors)
}else{
this.grid.store.reload(); //重新加载grid中的数据
}
},
failure:function(){ //处理后台删除失败的函数
Ext.MessageBox.alert('消息','删除失败!');
}
});
},//end deleteRecord
exportExcel:function(){
document.location.href='http://localhost:8080/chalk/hf/sortManager.do?action=export';
}
}
下面是使用前要再加的 js ,主要是处理一些ext2.0一些效果,不加也可以,不过可能会少些效果
//填充图片的本地应用
Ext.BLANK_IMAGE_URL='../resources/images/default/s.gif';
//在ie中默认的宽度不够
Ext.apply(Ext.MessageBox,{
alert:function(title, msg, fn, scope){
this.show({
title : title,
msg : msg,
buttons: this.OK,
minWidth:200,
fn: fn,
scope : scope
});
return this;
}
});
Ext.menu.RangeMenu.prototype.icons = {
gt: '../resources/extendIamges/greater_then.png',
lt: '../resources/extendIamges/less_then.png',
eq: '../resources/extendIamges/equals.png'
};
Ext.grid.filter.StringFilter.prototype.icon = '../resources/extendIamges/find.png';
/*
* 修改filter发送到后台的数据模式.
* 例:filter.[i][field]、filter.[i][type]、filter.[i][value]、filter.[i][comparison]、
*
*/
Ext.grid.GridFilters.prototype.buildQuery=function(filters){
var p = {};
for(var i=0, len=filters.length; i<len; i++) {
var f = filters[i];
var root = [this.paramPrefix, '[', i, ']'].join('');
p[root + '[field]'] = f.field;
//修改此处
var dataPrefix = root;
for(var key in f.data) {
p[[dataPrefix, '[', key, ']'].join('')] = f.data[key];
}
}
return p;
}
//添加时间交验函数
Ext.apply(Ext.form.VTypes, {
//时间交验属性
daterange: function(val, field) {
var date = field.parseDate(val);
var dispUpd = function(picker) {
var ad = picker.activeDate;
picker.activeDate = null;
picker.update(ad);
};
//debugger;
if (field.startDateField) {
var sd = 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 = field.endDateField;
ed.minValue = date;
if (ed.menu && ed.menu.picker) {
ed.menu.picker.minDate = date;
dispUpd(ed.menu.picker);
}
}
return true;
}
});
/**
* @auther huangfeng
* @class Ext.ux.GridExtend
* 通用的grid
*/
Ext.ux.GridExtend=function(config){
Ext.QuickTips.init();
this.config=config;
this.filters=this.config.filters||'';
/**
* @param {String}
* 显示列表的id
*/
this.el=this.config.el||document.body;
/**
* @param {String}
* 读取编辑数据的form的url
*/
this.editUrl=this.config.editUrl;
/**
* @param {String}
* 读取编辑数据的form的url
*/
this.deleteUrl=this.config.deleteUrl;
/**
* @param {String}
* 读取列表数据的url
*/
this.storeUrl=this.config.storeUrl;
/**
* @param {String}
* 保存添加到列表数据的url
*/
this.formSaveUrl=this.config.formSaveUrl;
/**
* @param {String}
* 列表的标题
*/
this.title=this.config.title||'';
/**
* @param {Array}
* 列表顶部状态栏
*/
this.tbar=this.config.tbar||[{//grid顶部栏位
text:'添加', //按钮的名称
tooltip:'添加数据', //鼠标停留在按钮上的提示
iconCls:'add', //按钮图表的类
handler:this.newInfo.createDelegate(this) //处理按钮被点击时触发的时间函数
},'-',{//'-'为多按钮间隔符
text:'删除', //删除按钮的名称
tooltip:'删除数据', //鼠标停留在按钮上的提示
iconCls:'remove', //按钮图表的类
handler:this.handlerDelete.createDelegate(this) //处理按钮被点击时触发的时间函数
},'-',{
text:'导出Excel', //删除按钮的名称
tooltip:'导出Excel', //鼠标停留在按钮上的提示
iconCls:'exportExcel',
handler:this.exportExcel.createDelegate(this) //处理按钮被点击时触发的时间函数
}];
/**
* @param 选择框对象
*/
this.sm=this.config.sm||new Ext.grid.CheckboxSelectionModel({//start Ext.grid.CheckboxSelectionModel
singleSelect:false //是否只能选择一个
});
/**
* @param {Array}
* 列表的栏的前面数据
*/
this.cmDataArrayBefore=[//start Ext.grid.ColumnModel
//defaultSortable:true, //默认情况下为排序
new Ext.grid.RowNumberer(), //数据函数序列号
this.sm
];
/**
* @param {Array}
* 显示的内容是从后台读取出来的数据,所以此数据中的dataIndex属性要与<br>
* 从后台读取的字段要一致
*/
this.cmDataArray=this.config.cmDataArray||[];
/**
* @param {Array}
* 列表的栏的后面数据
*/
this.cmDataArrayAfter=this.config.cmDataArrayAfter||[];
/**
* @param {Ext.grid.ColumnModel}
* 列表的栏位数据
*/
this.cm=this.config.cm||new Ext.grid.ColumnModel(
this.cmDataArrayBefore.concat(this.cmDataArray).concat(this.cmDataArrayAfter)
);//end Ext.grid.ColumnModel
/**
* @param {Array}
* 读取gridStore数据的字段设置数据对象
*/
this.gridStoreFields=this.config.gridStoreFields||new Array();
/*
* 如果this.gridStoreFields中没有数据,把this.cmDataArray中的dataIndex的属性值<br>
* 赋予gridStoreFields数组中对象的name属性值
*/
if(this.gridStoreFields.length==0){
for(var i=0,len=this.cmDataArray.length;i<len;i++){
this.gridStoreFields[i]={name:this.cmDataArray[i].dataIndex};
}
}
/**
* @param {new Ext.data.Store}
* 从后台读取的列表内容
*/
this.gridStore=this.config.gridStore||new Ext.data.Store({//start Ext.data.Store
proxy:new Ext.data.HttpProxy({
url:this.storeUrl //读取数据的url
}),
reader:new Ext.data.JsonReader({//start Ext.data.JsonReader
root:'rows', //存储数据的属性
totalProperty:'results', //总共的页数
id:'uniqueCode' //每行的id值
}, //end Ext.data.JsonReader
this.gridStoreFields)
});//end Ext.data.Store
this.gridStore.load({params:{start: 0, limit: 10}});
/**
* @param {Ext.PagingToolbar}
* 底部状态栏
*/
this.bbar=this.config.bbar||new Ext.PagingToolbar({ //在grid底层添加分页工具栏
pageSize:10, //显示的数据条数
store:this.gridStore, //选择翻页按钮时的加载到grid的数据
displayInfo:true, //设置是否显示分页栏的信息
displayMsg:'显示第 {0} 条到 {1} 条记录,一共 {2} 条',//消息栏的页数信息
emptyMsg:"没有记录" //当没有记录时要显示的信息
});//end bbar
/**
* 如果要设置此参数必须在cm中设置相应的id
*/
this.autoExpandColumn=this.config.autoExpandColumn||'';
/**
* @param {Object}
* 默认情况下有此显现,如果不需要可以为false
* 必须含有下列参数:<br>
* loadingEL {String} 加载页面时显示的内容id<br>
* loadingMaskEl {String} 渐显的内容id<br>
*/
this.loadingMark=this.config.loadingMark||{
loadingEL:'loading',
loadingMaskEL:'loading-mask'
};
/**
* @param {Ext.grid.GridPanel}
* @private
*/
this.grid=this.config.gridStore||new Ext.grid.GridPanel({
//el:this.el, //显示grid对象的层ID.
store:this.gridStore, // grid装载的数据.
viewConfig:{
autoFill:true,
deferEmptyText:'请等待...',
emptyText:'没有数据',
enableRowBody:true
},
sm:this.sm, //在每行数据前添加的一组checkBox
height:Ext.get(this.el).getComputedHeight(),
//autoHeight:true,
loadMask:true,
maskDisabled:true,
cm:this.cm, //设置栏位.
title:this.title, //标题名称.
iconCls:'icon-grid', //标题前的图片css类
autoExpandColumn:this.autoExpandColumn,
plugins: this.filters,
bbar:this.bbar,
tbar:this.tbar
});
this.formFields=this.config.formFields||new Array();
/**
* 双击数据的事件,弹出一个编辑此条数据的层
* @param grid 此列表的对象
* @param rowIndex 在列表中的行数
* @param e 触发此事件的事件对象
*/
this.rowdblclick=this.config.rowdblclick||function(grid, rowIndex, e){
var selectId=this.gridStore.data.items[rowIndex].id;
this.editInfo(selectId);
};
this.grid.on('rowdblclick',this.rowdblclick.createDelegate(this));
this.grid.render(this.el);
//当js加载完毕后删除loading页面并渐显内容
if(this.loadingMark){
setTimeout(function(){
Ext.get(this.loadingMark.loadingEL).remove();
Ext.get(this.loadingMark.loadingMaskEL).fadeOut({remove:true});
}.createDelegate(this), 250);
}
}
Ext.ux.GridExtend.prototype={
/**
* 加载 form表单的数据
* @param selectId 选择此条数据的唯一标识码,此参数发送到后台处理
*/
editInfo:function(selectId){
var form=this.getForm();
form.form.load({//start load 参数设置
url:this.editUrl,
params:{
uniqueCode:selectId
},
waitMsg:'Loading..'
});//end load 参数设置
this.formWindow(form,'编辑');
},
getForm:function(){
//错误信息放在右边
Ext.form.Field.prototype.msgTarget = 'side';
//var formSaveUrl=this.formSaveUrl;
//var formFields=this.formFields;
var formSaveUrl=Ext.clone(this.formSaveUrl);
var formFields=Ext.clone(this.formFields);
//实例化form面板
var form=new Ext.form.FormPanel({//start Ext.form.FormPanel
baseCls:'x-plain',
url:this.formSaveUrl,
frame:true,
id:'form',
items:formFields
});//end Ext.form.FormPanel
return form;
},
/**
* 装form表单的窗口
* @param form 要装载的form
* @param titlePre 标题的前缀
*/
formWindow:function(form,titlePre){
//实例化窗口
this.window=new Ext.Window({//start Ext.Window
title:titlePre+'任务列表',
width:500,
height:500,
minWidth:300,
minHeight:300,
layout:'fit',
//closeAction:'hide',
plain:true,
bodyStyle:'padding:5px',
iconCls:'form',
buttonAlign:'center',
items:form,
modal:true,
buttons:[{ //按钮
text:'保存',
handler:(function(){//start function按钮处理函数
if(form.getForm().isValid()){//表单是否通过交验,通过责提交表单,否则弹出错误窗口
form.getForm().submit({
scope:this,
waitMsg:'保存数据...',
success:function(form,action){
Ext.MessageBox.alert('消息:','保存成功');
this.grid.store.reload();
this.window.close() ;
},
failure:function(form,action){
Ext.MessageBox.alert('有错误:', action.result.errors);
this.window.close() ;
}
});
}else{
Ext.MessageBox.alert('有错误:','表单填写由错误!');
}
}).createDelegate(this)//end function
},{
text:'重置',
handler:function(){//start function按钮处理函数
form.getForm().reset();
}//end function
}]
});//end Ext.Window
//显示窗口
this.window.show();
},
/**
* 添加列表新数据的函数
*/
newInfo:function(){//start newTableInfo
this.formWindow(this.getForm(),'添加');
},//end newTableInfo
/**
* 删除数据,并把此数据的唯一标识码发送到后台
*/
handlerDelete:function(){//start deleteRecord
this.sendId(this.deleteUrl);
},//end deleteRecord
sendId:function(url){//start deleteRecord
var ids=new Array(); //存放uniqueCode的数组
var records=this.grid.selModel.selections.items;//grid中被选择的数据,类型为Array
for(var i = 0, len = records.length; i < len; i++){
ids[ids.length]=records[i].id; //把数据id赋予ids数组中
}
Ext.Ajax.request({ //调用Ajax发送请求到后台
scope:this,
url:url, //删除grid数据的url.
success:function(transport){ //处理成功后返回的函数
var oXmlDom=transport.responseText;
if(oXmlDom!=''){
var content=eval(oXmlDom);
Ext.MessageBox.alert("有错误:",content.errors)
}else{
this.grid.store.reload(); //重新加载grid中的数据
}
},
failure:function(){ //处理后台删除失败的函数
Ext.MessageBox.alert('消息','删除失败!');
}
});
},//end deleteRecord
exportExcel:function(){
document.location.href='http://localhost:8080/chalk/hf/sortManager.do?action=export';
}
}
下面是使用前要再加的 js ,主要是处理一些ext2.0一些效果,不加也可以,不过可能会少些效果
//填充图片的本地应用
Ext.BLANK_IMAGE_URL='../resources/images/default/s.gif';
//在ie中默认的宽度不够
Ext.apply(Ext.MessageBox,{
alert:function(title, msg, fn, scope){
this.show({
title : title,
msg : msg,
buttons: this.OK,
minWidth:200,
fn: fn,
scope : scope
});
return this;
}
});
Ext.menu.RangeMenu.prototype.icons = {
gt: '../resources/extendIamges/greater_then.png',
lt: '../resources/extendIamges/less_then.png',
eq: '../resources/extendIamges/equals.png'
};
Ext.grid.filter.StringFilter.prototype.icon = '../resources/extendIamges/find.png';
/*
* 修改filter发送到后台的数据模式.
* 例:filter.[i][field]、filter.[i][type]、filter.[i][value]、filter.[i][comparison]、
*
*/
Ext.grid.GridFilters.prototype.buildQuery=function(filters){
var p = {};
for(var i=0, len=filters.length; i<len; i++) {
var f = filters[i];
var root = [this.paramPrefix, '[', i, ']'].join('');
p[root + '[field]'] = f.field;
//修改此处
var dataPrefix = root;
for(var key in f.data) {
p[[dataPrefix, '[', key, ']'].join('')] = f.data[key];
}
}
return p;
}
//添加时间交验函数
Ext.apply(Ext.form.VTypes, {
//时间交验属性
daterange: function(val, field) {
var date = field.parseDate(val);
var dispUpd = function(picker) {
var ad = picker.activeDate;
picker.activeDate = null;
picker.update(ad);
};
//debugger;
if (field.startDateField) {
var sd = 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 = field.endDateField;
ed.minValue = date;
if (ed.menu && ed.menu.picker) {
ed.menu.picker.minDate = date;
dispUpd(ed.menu.picker);
}
}
return true;
}
});
发表评论
-
npm安装教程
2020-11-23 16:09 690一、使用之前,我们先来掌握3个东西是用来干什么的。 npm ... -
手机上万能返回上一页代替history.go(-1)
2016-05-13 11:25 819最近在做wap2.0的手机wap,写返回上一页的时候,开始 ... -
3.nodejs nodejs的mysql模块
2016-04-12 22:20 557安装nodejs的mysql模块首先要选定一个数据库,我选择 ... -
2.nodejs 使用Express4.x搭建第一个Web应用
2016-04-12 09:36 600Express4.x 是一个开源的node.js项目框架 ... -
1.nodejs windows 下安装nodejs
2016-04-12 09:34 4081.下载: 在nodejs的官方网站下载mis文件。ht ... -
Nodejs学习
2016-04-11 17:21 528将介绍如何利Javascript做为服务端脚本,通过Node ... -
HTML5做手机站页面字体显示很小的解决方法
2016-05-28 23:31 735HTML5做手机站需要加上一部分代码,不然字体会显示很小的 ... -
jquery 校验
2015-07-07 11:16 0EasyUI 验证框使用方法: ... -
JS、jquery实现几分钟前、几小时前、几天前等时间差显示效果的代码实例分享
2015-05-20 09:49 589一、javascript函数实现: //JavaS ... -
//from提交表单 使用ajax异步读取,回调函数
2015-04-24 18:05 0<%@ page language="ja ... -
js获取带checkbox行的记录的Id值的两个方法
2015-04-09 14:44 680第一种: function updateProcess() ... -
基于注解的SpringMVC简单介绍
2015-04-03 11:58 591SpringMVC是一个基于DispatcherServle ... -
Linux环境下Nginx的安装
2014-03-28 13:26 486Linux下命令: /usr/local/nginx/s ... -
自用打印(二)
2014-03-19 17:30 578<html> <title> ... -
自用打印方法(一)
2014-03-19 17:25 465经过验证的,自用的。 ... -
各种微博分享代码
2014-03-19 15:56 942<HTML> <HEAD> ... -
JSP页面打印(二)
2014-03-18 11:04 761<HTML><HEAD><T ... -
JSP页面打印方法(一)
2014-03-18 10:57 3168JSP页面打印方法 方法一:function Print ... -
jquery和js初始化加载的多种方法
2014-01-20 14:48 906jquery和js初始化加载页面的区别: jquery:等 ... -
js自动刷新当前页面
2013-12-19 14:09 797reload 方法,该方法强 ...
相关推荐
ExtJS是一种基于JavaScript的开源富客户端框架,特别适用于构建企业级的Web应用程序。...文档《ExtJs2.0学习系列.doc》应包含了关于这些主题的详细教程和示例,是学习ExtJS 2.0不可或缺的参考资料。
ExtJs2.0提供了丰富的一系列UI组件,例如面板(Panel)、窗口(Window)、表单(Form)、网格(Grid)等。这些组件是构建现代Web界面不可或缺的元素。中文手册中会详细说明如何创建和使用这些组件,以及它们的配置...
4. **Grid组件**:EXTJS 2.0的Grid组件是其一大亮点,支持分页、排序、过滤和拖放功能,可处理大量数据并提供高效的显示效果。源码分析有助于理解其背后的性能优化策略。 5. **表单元素**:EXTJS 2.0提供了丰富的...
智能提示功能提供了自动补全、代码提示以及类库方法和属性的快速参考,使得编写ExtJS代码更为便捷。 首先,我们来深入了解一下ExtJS 2.0的智能提示是如何工作的。在使用ExtJS开发时,IDE或编辑器通过解析库的API...
ExtJS 是一个很不错的Ajax 框架,可以用来开发带有华丽外观的富客户端应用,ExtJS 是一个用javascript 编写,与后台技术无关的前端ajax 框架...本教程主要是针对ExtJS2.0 进行介绍,全部代码、截图等都是基于ExtJS2.0。
综上所述,ExtJS 2.0是一个功能强大的AJAX框架,它的组件化开发模式、数据绑定机制以及丰富的API使得开发高效且易于维护的Web应用成为可能。无论是在企业级应用还是小型项目中,ExtJS都能发挥其优势,提高开发效率,...
这个"ExtJS2.0.rar"压缩包包含了关于如何使用ExtJS 2.0的资源,特别是"ExtJS2.0实用简明教程.chm",这是一份详细的指导文档,可以帮助开发者快速掌握该框架的核心概念和技术。 ExtJS 2.0的主要特点包括: 1. **...
例如,ExtJS中的组件(Components)是构建UI的基础,包括按钮(Button)、面板(Panel)、表单(Form)、网格(Grid)等。每个组件都有自己的配置项,你可以通过配置来定制外观和行为。数据绑定是ExtJS的另一大亮点...
最近我们在几个应用都使用到了ExtJS,对公司以前开发的一个OA系统也正在使用ExtJS2.0进行改造,使得整个系统在用户体验上有了非常大的变化。本教程记录了前段时间本人学习ExtJS的一些心得及小结,希望能帮助正在学习...
EXTJS2.0是一款强大的JavaScript框架,主要用于构建富客户端应用程序,尤其在企业级Web应用的前端界面设计上表现卓越。这个项目是利用EXTJS2.0来开发的一个派出所的网站和后台管理系统,它展示了EXTJS在实现高效、...
ExtJS 2.0 是一个基于 JavaScript 的前端框架,用于构建富互联网应用程序(RIA)。它提供了丰富的组件库,包括各种用户界面元素,如表格、窗口、菜单和表单控件等。在本例中,我们将重点讨论如何在 ExtJS 2.0 中实现...
EXTJS 2.0的官方范例,离线html格式!
这个"ExtJS2.0中文API珍藏版"提供了一套完整的文档,使开发者能够更方便地理解和使用ExtJS 2.0版本的功能。API(Application Programming Interface)是软件开发中的一个重要概念,它定义了开发者如何与库或框架进行...
本教程主要聚焦于ExtJS 2.0版本的核心API,帮助开发者深入理解和运用这个框架。 **一、ExtJS基本概念** 1. **组件(Components)**: ExtJS的核心是其组件系统,包括按钮、表格、面板、窗口等,这些组件构建了整个...
ExtJS2.0实用简明教程和ExtJSapi
ExtJS2.0实用简明教程ExtJS2.0实用简明教程ExtJS2.0实用简明教程ExtJS2.0实用简明教程ExtJS2.0实用简明教程ExtJS2.0实用简明教程ExtJS2.0实用简明教程ExtJS2.0实用简明教程
关于ext学习的资料,有些例子 ExtJs2.0学习系列.CHM
extjs2.0 使用简明教程之窗口分组,实现分组窗体
《ExtJS2.0实用简明教程》之应用ExtJS详细介绍
EXTJS 2.0 版本是其发展历程中的一个重要里程碑,提供了丰富的组件、强大的数据绑定机制以及优雅的API,使得开发者能够快速构建出具有桌面级应用体验的Web应用。 在EXTJS 2.0中,主要包含以下几个关键知识点: 1. ...