最近公司新项目决定前台采用ExtJS4,于是小弟只有。。。
说明:
小弟编写的这个模块,表单数据CRUD都在一个表单上完成,没有创建新的窗口,用户查询结果共用了一个grid。
ExtJS4环境需要加载的东东不多,详见我JSP文件及图。
返回数据形式:
{'totalCount': 27,'result':[{"uum0401":103,"uum0402":"a81","uum0405":false,"uum0406":false},{"uum0401":104,"uum0402":"9","uum0405":false,"uum0406":false},{"uum0401":105,"uum0402":"a9","uum0405":false,"uum0406":false},{"uum0401":127,"uum0402":"2","uum0405":false,"uum0406":false},{"uum0401":122,"uum0402":"aa"},{"uum0401":123,"uum0402":"ok"},{"uum0401":124,"uum0402":"asas"},{"uum0401":125,"uum0402":"aaa","uum0405":false,"uum0406":false},{"uum0401":129,"uum0402":"a1","uum0405":false,"uum0406":false},{"uum0401":130,"uum0402":"a2","uum0405":false,"uum0406":false}]}
为了方便大虾路过方便过目,最后只贴出js源码,其余东东附件提供,good luck。项目繁忙,就不多说了,有问题短我吧,我会尽力尽快回复,大家见谅。
/**
* @author cnyangqi@126.com
* @version 1.0
* @since 1.0
*/
Ext.Loader.setConfig({
enabled : true
});
Ext.Loader.setPath('Ext.ux', '../js/extjs4/ux/');
Ext.require(['Ext.grid.*', 'Ext.data.*', 'Ext.util.*', 'Ext.toolbar.Paging',
'Ext.ModelManager', 'Ext.tip.QuickTipManager',
'Ext.ux.ProgressBarPager']);
Ext.onReady(function() {
Ext.tip.QuickTipManager.init();
// 定义领域模型
Ext.define('Ecwuum04', {
extend : 'Ext.data.Model',
fields : ['uum0401', 'uum0402', 'uum0403', 'uum0404',
'uum0405', 'uum0406'],
idProperty : 'uum0401'// 实体主键
});
var itemsPerPage = 10;
var key;// 搜索关键字
// 创建数据仓库
var store = Ext.create('Ext.data.Store', {
autoDestroy : true,
model : 'Ecwuum04',
proxy : {
type : 'ajax',
url : 'ecwuum04!list.action',
reader : {
type : 'json',
root : 'result',// JSON数组对象名
totalProperty : 'totalCount'// 数据集记录总数
}
},
pageSize : itemsPerPage,
autoLoad : true
});
// beforeload( Ext.data.Store store, Ext.data.Operation operation)
store.on('beforeload', function(s, o) {
if (Ext.getCmp('key').getValue()) {
key = Ext.getCmp('key').getValue();
} else {
key = 'undefined';
}
s.proxy.extraParams['key'] = key;
});
var selModel = Ext.create('Ext.selection.CheckboxModel');
var rowEditing = Ext.create('Ext.grid.plugin.RowEditing', {
// clicksToEdit : 2,//默认双击修改行数据
clicksToMoveEditor : 1,
autoCancel : false
});
// 创建表格
var grid = Ext.create('Ext.grid.Panel', {
width : 650,
height : 300,
title : '角色信息',
frame : true,
disableSelection : false, // 允许选择行 *
selType : 'rowmodel', // 选择类型设置为:行选择
plugins : [rowEditing],// 加载行编辑插件
listeners : {
'selectionchange' : function(sm, selections) {
grid.down('#removeButton').setDisabled(selections.length == 0);
}
},
selModel : selModel,
store : store,
columns : [{
text : "角色编号",
dataIndex : "uum0401"
}, {
text : "角色名称",
dataIndex : 'uum0402',
sortable : true, // 此列数据可排序
hideable : false, // 此列数据不可隐藏
renderer : function(value) { // 一般用于添加EMail
return Ext.String.format(
'<a href="mailto:{0}@qq.com">{1}</a>', value,
value);
},
field : {
xtype : 'textfield',
allowBlank : false
}
}, {
text : "角色类型",
dataIndex : 'uum0403',
sortable : true,
field : {
xtype : 'textfield'
}
}, {
text : "关联业务系统",
dataIndex : 'uum0404',
sortable : true
}, {
text : "标记",
dataIndex : 'uum0405',
sortable : true
}, {
text : "默认角色",
dataIndex : "uum0406"
}],
// bbar : bbar,
dockedItems : [{
xtype : 'toolbar',
dock : 'top',
items : [{
xtype : 'button',
text : '添加',
tooltip : '添加角色',
iconCls : 'add',
handler : function() {
var r = Ext.ModelManager.create({
uum0402 : '',
uum0403 : '',
uum0404 : '',
uum0405 : '',
uum0406 : ''
}, 'Ecwuum04');
store.insert(0, r);
rowEditing.startEdit(0, 0);
}
}, '-', {
xtype : 'button',
text : '修改',
tooltip : '修改选择的角色',
iconCls : 'option',
handler : function() {
var sm = grid.getSelectionModel();
rowEditing.startEdit(sm.getSelection()[0],
0);// records
}
}, '-', {
itemId : 'removeButton',
xtype : 'button',
text : '删除',
tooltip : '删除选择的角色',
iconCls : 'remove',
handler : function() {
var sm = grid.getSelectionModel();
var records = sm.getSelection();
rowEditing.cancelEdit();
store.remove(records);
sm.select(0);
for (var i = 0; i < records.length; i++) {
delEcwuum04(records[i].data['uum0401']);
}
},
disabled : true
}, '->', {
xtype : "label",
text : "角色名称:"
}, {
xtype : "textfield",
id : "key"
}, {
text : "搜索",
iconCls : 'search',
handler : function() {
// searchEcwuum04();
store.load();
}
}]
}, {
xtype : 'pagingtoolbar',
id : 'pt',
store : store, // 分页store与grid一致
dock : 'bottom',
displayInfo : true,
plugins : Ext.create('Ext.ux.ProgressBarPager', {})
}],
iconCls : 'icon-grid',
renderTo : 'grid'
});
grid.on('edit', onEdit, this);
function onEdit(e) {
e.record.commit();
Ext.Ajax.request({
url : 'ecwuum04!save.action',
params : {
"ecwUum04.uum0401" : e.record.data['uum0401'],
"ecwUum04.uum0402" : e.record.data['uum0402'],
"ecwUum04.uum0403" : e.record.data['uum0403'],
"ecwUum04.uum0404" : e.record.data['uum0404'],
"ecwUum04.uum0405" : e.record.data['uum0405'],
"ecwUum04.uum0406" : e.record.data['uum0406']
},
success : function(response) {
var text = response.responseText;
alert(text);
}
});
store.load();
};
function delEcwuum04(id) {
Ext.Ajax.request({
url : 'ecwuum04!delete.action',
params : {
"ecwUum04.uum0401" : id
},
success : function(response) {
}
});
store.load();
Ext.MessageBox.alert("信息", "删除成功");
}
});
分享到:
相关推荐
ext js 4.0 api html格式
Ext JS 4.0编码规范,翻译自官方文档的指南(Guides)。
Ext4.0 Ext4.0MVC Demo Ext4.0 Ext4.0MVC Demo Ext4.0 Ext4.0MVC Demo Ext4.0 Ext4.0MVC Demo
经典的Ext js4.0源码包,解压压缩包后放入tomactWebapps目录,运行tomact即可看到ext js事例展示,有很多种页面展示效果哦
最新的ext4.0,最新的ext4.0,最新的ext4.0。
ext-4.0.rar ext-4.0.rar ext-4.0.rar
ext-4.0
Ext4 是 Ext3 的改进版,修改了 Ext3 中部分重要的数据结构,而不仅仅像 Ext3 对 Ext2 那样,只是增加了一个日志功能而已。Ext4 可以提供更佳的性能和可靠性,还有更为丰富的功能:
EXT4.0 SDK 正式版下载。
都是项目开发中非常实用的技术点,本人精心整理,希望对从事ext4开发的童鞋有所帮助。
后台使用的是struts2生成Ext所需要的json,把webroot下的ext4下面加入ext的开发包,然后再把create.sql中的脚本在数据库中执行,代码就可以跑起来了,我用的是mysql数据库
ext-4.0.0-gpl.zip EXT4.0共二卷 ext-4.0.0-gpl.zip EXT4.0第二卷
ext-4.0.0-gpl.zip EXT4.0共二卷 ext-4.0.0-gpl.zip EXT4.0第一卷
含有ext-4.0.0.jsb2文件,这个插件可以装在ext-4.0.0.0-gpl.zip的根目录下面,实现对ext代码的实现
EXT4.0项目源码
Ext4.0中文版
EXT.js4.2实战EXT.js4.2实战EXT.js4.2实战EXT.js4.2实战
ext-4.0-beta1 类包,WEB开发,移动设备开发,效果喧染强悍
ext4.0的中文文档,界面很优美
51CTO下载-ext-4.0