/*!
* Ext JS Library 3.2.0
* Copyright(c) 2006-2010 Ext JS, Inc.
* licensing@extjs.com
* http://www.extjs.com/license
*/
Ext.onReady(function(){
var newFormWin;
var userform;
// create the Data Store 数据
var store = new Ext.data.JsonStore({
root: 'pageResult',
totalProperty: 'totalRecords',
idProperty: 'userId',
remoteSort: true,
fields: [
'userEmail',
'userAge',
'userAddress',
'country',
'userSex',
'crtDate',
'city',
'province',
'race',
'userPhone',
'userName',
'userId'
],
// load using script tags for cross domain, if the data in on the same domain as
// this page, an HttpProxy would be better
proxy: new Ext.data.HttpProxy({
url: '请求数据路径'
})
});
//分页显示用户数据
var grid = new Ext.grid.GridPanel({
autoFill : false,
autoHeight : true,
width:700,//宽度
//height:300,//高度
title:'用户信息表',
store: store,//数据
trackMouseOver:false,
disableSelection:true,
//加载的图标是否显示
loadMask: true,
//单行选中
sm: new Ext.grid.CheckboxSelectionModel ({ singleSelect: false }),//复选框
// grid columns列
columns:[
new Ext.grid.CheckboxSelectionModel({singleSelect : false}),//复选框
//new Ext.grid.RowNumberer(),//序号
{
id: 'userName', // id assigned so we can apply custom css (e.g. .x-grid-col-topic b { color:#333 })
header: "用户名",
dataIndex: 'userName',
//align: 'center',
sortable: false
},{
header: "年龄",
dataIndex: 'userAge',
//align: 'center',
sortable: false
},{
header: "email",
dataIndex: 'userEmail',
//align: 'center',
sortable: false
},{
header: "电话",
dataIndex: 'userPhone',
//align: 'center',
sortable: false
}],
// customize view config
viewConfig: {
forceFit:true,//True表示为自动展开/缩小列的宽度以适应grid的宽度,这样就不会出现水平的滚动条。
enableRowBody:true,//True表示为在每一数据行的下方加入一个TR的元素
showPreview:true,
getRowClass : function(record, rowIndex, p, store){
return 'x-grid3-row-expanded';
// return 'x-grid3-row-collapsed';
}
},
// 添加内陷的按钮
tbar : [ {
id : 'addUserForm',
text : ' 新建 ',
tooltip : '新建一个表单',
iconCls : 'add',
handler : function() {
add_btn();
}
}, '-', {
id : 'editUserForm',
text : '修改',
tooltip : '修改',
iconCls : 'edit',
handler : function() {
edit_btn();
}
}, '-', {
text : '删除',
tooltip : '删除被选择的内容',
iconCls : 'remove',
handler : function() {
handleDelete();
}
}],
// paging bar on the bottom分页按钮
bbar: new Ext.PagingToolbar({
pageSize: 10,//每页条数
store: store,//数据
displayInfo: true,
displayMsg: '从{0}条到{1}条 总共 {2}条',
emptyMsg: "没有数据"
})
});
// render it显示的层
grid.render('user-grid');
// trigger the data store load 加载用户
store.load({params:{start:0, limit:10}});
//添加用户按钮
var add_btn = function() {
addFormWin();
};
//添加和修改公用的用户的form=========开始==========================================================================================================================
var userForm = new Ext.FormPanel( {
// collapsible : true,// 是否可以展开
labelWidth : 75, // label settings here cascade unless overridden
frame : true,
bodyStyle : 'padding:5px 5px 0',
waitMsgTarget : true,
//reader : _jsonFormReader,
defaults : {
width : 230
},
defaultType : 'textfield',
items : [{
fieldLabel : 'id',
name : 'userId',
emptyText: 'id',
hidden: true,
hideLabel:true,
allowBlank : true
}, {
fieldLabel : '用户名',
name : 'userName',
emptyText: '用户名',
allowBlank : false
}, {
fieldLabel : '年龄',
name : 'userAge',
emptyText: '年龄',
xtype : 'numberfield',
allowBlank : false
},
new Ext.form.RadioGroup({
fieldLabel : '性别',
name:'userSex',
items:[
{boxLabel: '男', name: 'userSex', inputValue: 1},
{boxLabel: '女', name: 'userSex', inputValue: 2}
]
}), {
fieldLabel : '种族',
name : 'race',
emptyText: '民族',
allowBlank : false
}, {
fieldLabel : '电话',
name : 'userPhone',
emptyText: '联系电话',
allowBlank : false
}, {
fieldLabel : 'Email',
name : 'userEmail',
vtype:'email',
vtypeText:"不是有效的邮箱地址",
allowBlank : false
}, {
fieldLabel : '国家',
name : 'country',
emptyText: '国家',
allowBlank : false
},{
fieldLabel : '省市',
name : 'province',
emptyText: '省市',
allowBlank : false
}, {
fieldLabel : '城市',
name : 'city',
emptyText: '城市',
allowBlank : false
}, {
fieldLabel : '地址',
name : 'userAddress',
emptyText: '地址',
allowBlank : false
}]
});
//添加和修改公用的用户的form=========结束==========================================================================================================================
//添加操作开始==========================================================================================================================
// form_win定义一个Window对象,用于新建和修改时的弹出窗口。
//添加用户的window
var addFormWin = function() {
// create the window on the first click and reuse on subsequent
// clicks 判断此窗口是否已经打开了,防止重复打开
if (!newFormWin) {
newFormWin = new Ext.Window( {
el : 'topic-win',
layout : 'fit',
width : 400,
height : 400,
closeAction : 'hide',
plain : true,
title : '添加用户',
items : userForm,
buttons : [ {
text : '保存',
disabled : false,
handler :
addBtnsHandler
}, {
text : '取消',
handler : function() {
userForm.form.reset();//清空表单
newFormWin.hide();
}
}]
});
}
newFormWin.show('addUserForm');//显示此窗口
}
//添加操作按钮
function addBtnsHandler() {
if (userForm.form.isValid()) {
userForm.form.submit( {
url : '请求数据路径',
waitMsg : '正在保存数据,稍后...',
success : function(form, action) {
Ext.Msg.alert('保存成功', '添加用户信息成功!');
userForm.form.reset();//清空表单
grid.getStore().reload();
newFormWin.hide();
},
failure : function(form, action) {
Ext.Msg.alert('保存失败', '添加人员信息失败!');
}
});
}
else {
Ext.Msg.alert('信息', '请填写完成再提交!');
}
}
//添加操作结束==========================================================================================================================
//修改操作开始==========================================================================================================================
//点击修改按钮加载数据
function edit_btn(){
var selectedKeys = grid.selModel.selections.keys;//returns array of selected rows ids only
//判断是否选中一行数据 没有选中提示没有选中,选中加载信息
if(selectedKeys.length != 1){
Ext.MessageBox.alert('提示','请选择一条记录!');
} //加载数据
else{
var EditUserWin = new Ext.Window({
title: '修改员工资料', //题头
layout:'fit',//布局方式
width:400,//宽度
height:400,//高度
plain: true,//渲染
items:userForm,
//按钮
buttons: [{
text:'保存',
handler:function(){
updateHandler(EditUserWin);
}
},{
text: '取消',
handler: function(){
EditUserWin.hide();
}
}]
});
EditUserWin.show("editUserForm");
loadUser();
}
}
//加载数据
function loadUser(){
var selectedKeys = grid.selModel.selections.keys;//returns array of selected rows ids only
userForm.form.load({
waitMsg : '正在加载数据请稍后',//提示信息
waitTitle : '提示',//标题
url : '请求数据路径',
params:{USER_ID:selectedKeys},
method:'POST',//请求方式
failure:function(form,action){//加载失败的处理函数
Ext.Msg.alert('提示','数据加载失败');
}
});
}
//修改按钮操作
function updateHandler(w){
if (userForm.form.isValid()) {
userForm.form.submit({
clientValidation:true,//进行客户端验证
waitMsg : '正在提交数据请稍后...',//提示信息
waitTitle : '提示',//标题
url : 'http://localhost:8080/mypo/users/UserManagerAction/updateUser.json',//请求的url地址
method:'POST',//请求方式
success:function(form,action){//加载成功的处理函数
w.hide();
userForm.form.reset();//清空表单
grid.getStore().reload();
Ext.Msg.alert('提示','修改信息成功');
},
failure:function(form,action){//加载失败的处理函数
Ext.Msg.alert('提示','ID不能修改');
Ext.Msg.alert('提示','修改信息失败');
}
});
}else {
Ext.Msg.alert('信息', '请填写完成再提交!');
}
}
//修改操作结束==========================================================================================================================
//删除操作开始==========================================================================================================================
function handleDelete(){
var selectedKeys = grid.selModel.selections.keys; //returns array of selected rows ids only
if(selectedKeys.length > 0) {
Ext.MessageBox.confirm('提示','您确实要删除选定的记录吗?', deleteRecord);
}else{
Ext.MessageBox.alert('提示','请至少选择一条记录!');
}//end
}
//删除记录
function deleteRecord(btn){
if(btn=='yes'){
//var selectedRows = grid.selModel.selections.items;//returns record objects for selected rows (all info for row) 获得整行数据
var selectedKeys = grid.selModel.selections.keys;//选中的行的值id
Ext.MessageBox.show({
msg: '正在请求数据, 请稍侯',
progressText: '正在请求数据',
width:300,
wait:true,
waitConfig: {interval:200}
});
Ext.Ajax.request({
url: '请求数据路径', //url to server side script
method: 'POST',
params:{USER_ID:selectedKeys},//the unique id(s)
failure:function(){
Ext.MessageBox.hide();
Ext.MessageBox.alert("警告","出现异常错误!请联系管理员!");
},
success:function(){
Ext.MessageBox.hide();
Ext.MessageBox.alert("成功","删除成功!");
store.reload();
}
})// end Ajax request
}
}
//删除操作结束==========================================================================================================================
});