var grid;
Ext.onReady(function() {
// grid中的复选框
var sm = new Ext.grid.CheckboxSelectionModel();
// 数据存储器
var ds = new Ext.data.Store({
proxy : new Ext.data.HttpProxy({
url : "../student.action?method=page",
method : "post"
}),
reader : new Ext.data.JsonReader({ // 读取json数据
root : "newsList",
totalProperty : 'totalProperty' // 总记录数
}, [{
name : "id"
}, {
name : "name"
}, {
name : "sex"
}, {
name : "birthday"
}, {
name : "by1"
}])
});
function toChin(val){
if(val=="1"){
return "男";
}else{
return "女";
}
}
// 创建列
var cm = new Ext.grid.ColumnModel([
sm, // 复选框
{
header : "编号",
dataIndex : "id",
sortable : true
}, {
header : "姓名",
dataIndex : "name",
width : 100
}, {
header : "性别",
dataIndex : "sex",
width : 110,
renderer : toChin
}, {
header : "出生日期",
dataIndex : "birthday",
width : 150
}, {
header : "民族",
dataIndex : "by1",
width : 110
}]);
cm.defaultSortable = true;// 默认可排序
// grid中的工具条
var toolbar = new Ext.Toolbar([{
text : '添加',
icon : 'icons/add.gif',
handler : function() {
insertform.form.reset(); //添加前先重置表单
window_add.show();
}
}, {
text : '修改',
icon : 'icons/edit.gif',
handler : function() {
loadUpdateForm();
}
}, {
text : '删除',
icon : 'icons/delete.gif',
handler : function() {
// 获取选中的对象
var list = grid.getSelectionModel().getSelections();
var str = '';
if (list.length > 0) {
for (var i = 0; i < list.length; i++) {
str = str + list[i].get('id') + ',';
}
}
Ext.Msg.alert("提示", "删除" + str);
var idList = [];
for (var i = 0; i < list.length; i++) {
idList.push(list[i].get('id'));
}
for (var i = 0; i < idList.length; i++) {
var index = ds.find('id', idList[i]);
if (index != -1) {
var rec = ds.getAt(index);
ds.remove(rec); // 移除
}
}
}
}, {
text : '重新加载',
icon : 'icons/plugin.gif',
handler : function() {
ds.reload();
}
}]);
// 创建Grid
grid = new Ext.grid.GridPanel({
el : "grid",
ds : ds,
title : "代码列表",
width : 600,
height : Ext.get("content").getHeight() / 2 + 20,
cm : cm,
loadMask : {
msg : '正在加载数据,请稍侯……'
},
sm : sm,
tbar : toolbar,
// 下边
bbar : new Ext.PagingToolbar({
pageSize : 10,
store : ds,
displayInfo : true,
displayMsg : ' 显示第 {0} 条到 {1} 条记录,一共 {2} 条',
emptyMsg : ' 没有记录'
})
});
grid.render(); // 组件渲染之后触发
ds.load({params : {start : 0,limit : 10}}); // 加载数据
// 双击事件
grid.addListener("rowdblclick", function(grid, rowIndex, columnIndex, e) {
var dataObj = grid.getStore().getAt(rowIndex); // 说去选中的行的数据对象
var id = dataObj.get("id");
var content = dataObj.get("name");
Ext.Msg.alert("提示", id + content);
});
// 单击事件
/*
* grid.addListener("click",function(){ Ext.Msg.alert("提示","单击事件"); });
*/
/*
* 如果要动态加载grid数据则,在方法内加入 ds:数据存储器,propertyId为要传的参数
* ds.load({params:{start:0,limit:10,propertyId:propertyId}});
*
*/
});
/**
* 分页读取Grid内容
*
* @param request
* @param response
* @return
*/
@RequestMapping(params = "method=page")
public ModelAndView page(HttpServletRequest request,
HttpServletResponse response) {
int start;
try {
start = Integer.parseInt(request.getParameter("start"));
} catch (NumberFormatException e1) {
start = 0;
}
int limit;
try {
limit = Integer.parseInt(request.getParameter("limit"));
} catch (NumberFormatException e1) {
limit = 10;
}
Student nr = new Student();
List<Student> list = studentService.findStudentByPage(nr, start, limit);
int totalProperty = studentService.findByCont();
JSONArray jsonArray = new JSONArray();
Iterator ite = list.iterator();
while (ite.hasNext()) {
Student s = (Student) ite.next();
Map map = new HashMap();
map.put("id", s.getId());
map.put("name", s.getName());
map.put("sex", s.getSex());
map.put("birthday", s.getBirthday());
map.put("by1", s.getBy1());
jsonArray.add(map);
}
String jsonStr = jsonArray.toString();
String jsonString = "{start:" + start + ",limit:" + limit
+ ",totalProperty:" + totalProperty + ",newsList:" + jsonStr
+ "}";
response.setContentType("text/html;charset=utf-8");
try {
response.getWriter().write(jsonString);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
// 定义Grid中的行对象
var Student = Ext.data.Record.create([{
name : 'id',
mapping : 'id',
type : 'int'
}, {
name : 'name',
mapping : 'name',
type : 'string'
}, {
name : 'sex',
mapping : 'sex',
type : 'string'
}, {
name : 'birthday',
mapping : 'birthday',
type : 'string'
}, {
name : 'by1',
mapping : 'by1',
type : 'string'
}]);
//读取下拉列表内容
var ds = new Ext.data.Store({
proxy : new Ext.data.HttpProxy({
url : '../student.action?method=selectTree'
}),
reader : new Ext.data.JsonReader({}, ['code', 'content'])
});
var insertform = new Ext.FormPanel({
frame : true,
labelWidth : 70,
bodyStyle : 'padding:5px',
border : false,
labelAlign : 'right',
fileUpload : true, // 上传文件(必填)
items : [{
layout : 'column',
border : false,
items : [{
columnWidth : .5,
layout : 'form',
baseCls : 'x-plain',
border : false,
// defaultType : 'textfield',
defaults : {
anchor : '80%'
},
items : [{
fieldLabel : '身份证号',
xtype : 'textfield',
name : 'idCard',
maxLength : 50
}, {
fieldLabel : '姓名',
xtype : 'textfield',
name : 'name'
}, {
fieldLabel : '电子邮件',
xtype : 'textfield',
name : 'email',
vtype : 'email'
}, {
xtype : 'panel',
layout : 'table',
fieldLabel : '性别',
defaultType : 'radio',
isFormField : true,
items : [{
name : 'sex',
boxLabel : '<span style="color:black;font-size:12px;">男 </span>',
inputValue : '1', //值
checked : true //默认选中
}, {
name : 'sex',
boxLabel : '<span style="color:black;font-size:12px;">女</span>',
inputValue : '2'
}]
}]
}, {
columnWidth : .5,
layout : 'form',
border : false,
defaultType : 'textfield',
defaults : {
anchor : '80%'
},
items : [{
store : ds, //下拉列表的数据
fieldLabel : '民族',
name : 'by1',
xtype : 'textfield',
xtype : 'combo',
valueField : 'code', //值的name属性
mode : 'remote', //远程数据
displayField : "content", //显示内容的name属性
forceSelection : true,
blankText : '请选择所属类型',
emptyText : '选择所属类型',
editable : true, //可以编辑
triggerAction : 'all',
allowBlank : false,
hiddenName : "by1", //作为隐藏表单传入form的值
autoShow : true,
selectOnFocus : true
}, {
fieldLabel : '出生日期',
name : 'birthday',
xtype : "datefield",
format : "Y-m-d"
}, {
fieldLabel : '联系地址',
name : 'address',
xtype : 'textfield'
}, {
fieldLabel : '封面图片',
name : 'uploadphoto',
inputType : 'file'
}]
}]
}, {
xtype : 'checkboxgroup',
fieldLabel : '兴趣爱好',
name : 'xqah',
columns : 4,
items : [{
boxLabel : 'Item 1',
name : 'xqah',
inputValue : '1'
}, {
boxLabel : 'Item 2',
name : 'xqah',
checked : true, //默认选中
inputValue : '2'
}, {
boxLabel : 'Item 3',
name : 'xqah',
inputValue : '3'
}, {
boxLabel : 'Item 4',
name : 'xqah',
inputValue : '4'
}, {
boxLabel : 'Item 5',
name : 'xqah',
inputValue : '5'
}, {
boxLabel : 'Item 6',
name : 'xqah',
inputValue : '6'
}, {
boxLabel : 'Item 7',
name : 'xqah',
inputValue : '7'
}]
}, {
xtype : 'tabpanel',
plain : true,
bodyBorder : false,
activeTab : 0,
height : 200,
defaults : {
bodyStyle : 'padding:2px'
},
items : [{
title : '备注',
layout : 'fit',
items : {
xtype : 'textarea',
name : 'remark',
maxLength : 500
}
}, {
title : '编辑推荐',
layout : 'fit',
items : {
xtype : 'textarea',
name : 'by2',
maxLength : 500
}
}, {
title : '作者简介',
layout : 'fit',
items : {
xtype : 'textarea',
name : 'by3',
maxLength : 500
}
}]
}],
buttonAlign : "center",
buttons : [{
text : "保存",
handler : function() {
submitform();
}
}, {
text : "关闭",
handler : function() {
window_add.hide();
}
}]
});
// 提交表单
function submitform() {
if (insertform.getForm().isValid()) { // 如果验证通过
insertform.getForm().submit({
url : "../zdbnr.action?method=insert",
waitMsg : '正在保存数据...',
success : onAddSuccess,
failure : onFailure
});
}
}
var onFailure = function(form, action) {
if (action.failureType == "connect") {
Ext.Msg.alert('服务器异常', '服务器异常,请与管理员联系!');
} else {
Ext.Msg.alert('错误', '您输入的用户名和密码错误!');
}
}
// 触发事件,如:添加成功后
var onAddSuccess = function(form, action) {
var store = grid.getStore();
var student = new Student({
id : action.result.stuid,
name : form.findField('name').getValue(),
sex : form.findField('sex').getValue(),
birthday : form.findField('birthday').getValue(),
by1 : form.findField('by1').getValue()
});
store.insert(0, [student]);
if (store.data.length > 10) {
store.remove(store.getAt(store.data.length - 1));
}
Ext.MessageBox.alert("提示", "插入成功!");
window_add.hide();
}
var window_add = new Ext.Window({
title : '添加',
width : 600,
resizable : false,
autoHeight : true, // 自动适应高度
modal : true,
closeAction : 'hide',
listeners : {
'hide' : function() {
}
},
items : [insertform]
});
@RequestMapping(params = "method=selectTree")
public ModelAndView selectTree(HttpServletRequest request,
HttpServletResponse reponse) throws Exception {
reponse.setContentType("text");
reponse.setCharacterEncoding("UTF-8");
SysDataParamContent content = new SysDataParamContent();
content.setDataParamId(10024);
List<SysDataParamContent> nrlist = dataZxZdbnrService
.findByComb(content);
StringBuffer sb = new StringBuffer();
sb.append("[");
for (int i = 0; i < nrlist.size(); i++) {
SysDataParamContent nr = nrlist.get(i);
sb.append("{\"content\" :\"" + nr.getContent() + "\" ,\"code\" :\""
+ nr.getCode() + "\"},");
}
sb.append("]");
reponse.getWriter().write(sb.toString());
return null;
}
@RequestMapping(params = "method=insert")
public ModelAndView insert(Student stu,HttpServletRequest request, HttpServletResponse reponse)
throws Exception {
int count = dataZxZdbnrService.insertStudent(stu);
reponse.setContentType("text/html");
String result = "";
if (count > 0) {
count = studentService.findByLast();
uploadTemplate(request,count);
result = "{stuid:"+count+",success:true}";
}
reponse.getWriter().write(result);
return null;
}
var updateform = new Ext.FormPanel({
frame : true,
labelWidth : 70,
bodyStyle : 'padding:5px',
border : false,
labelAlign : 'right',
items : [{
layout : 'column',
border : false,
items : [{
columnWidth : .5,
layout : 'form',
baseCls : 'x-plain',
border : false,
defaults : {
anchor : '80%'
},
items : [{
name : "id",
fieldLabel : "编号",
xtype : "hidden"
},{
fieldLabel : '身份证号',
xtype : 'textfield',
name : 'idCard',
maxLength : 50
}, {
fieldLabel : '姓名',
xtype : 'textfield',
name : 'name'
}, {
fieldLabel : '电子邮件',
xtype : 'textfield',
name : 'email',
vtype : 'email'
}, {
xtype : 'panel',
layout : 'table',
fieldLabel : '性别',
defaultType : 'radio',
isFormField : true,
items : [{
name : 'sex',
boxLabel : '<span style="color:black;font-size:12px;">男 </span>',
inputValue : '1', // 值
checked : true
// 默认选中
}, {
name : 'sex',
boxLabel : '<span style="color:black;font-size:12px;">女</span>',
inputValue : '2'
}]
}]
}, {
columnWidth : .5,
layout : 'form',
border : false,
defaultType : 'textfield',
defaults : {
anchor : '80%'
},
items : [{
store : ds, // 下拉列表的数据
fieldLabel : '民族',
name : 'by1',
xtype : 'textfield',
xtype : 'combo',
valueField : 'code', // 值的name属性
mode : 'remote', // 远程数据
displayField : "content", // 显示内容的name属性
forceSelection : true,
blankText : '请选择所属类型',
emptyText : '选择所属类型',
editable : true, // 可以编辑
triggerAction : 'all',
allowBlank : false,
hiddenName : "by1", // 作为隐藏表单传入form的值
autoShow : true,
selectOnFocus : true
}, {
fieldLabel : '出生日期',
name : 'birthday',
xtype : "datefield",
format : "Y-m-d"
}, {
fieldLabel : '联系地址',
name : 'address',
xtype : 'textfield'
}, {
fieldLabel : '封面图片',
name : 'uploadphoto',
inputType : 'file'
}]
}]
}, {
xtype : 'checkboxgroup',
fieldLabel : '兴趣爱好',
name : 'xqah',
columns : 4,
items : [{
boxLabel : 'Item 1',
name : 'xqah',
inputValue : '1'
}, {
boxLabel : 'Item 2',
name : 'xqah',
checked : true, // 默认选中
inputValue : '2'
}, {
boxLabel : 'Item 3',
name : 'xqah',
inputValue : '3'
}, {
boxLabel : 'Item 4',
name : 'xqah',
inputValue : '4'
}, {
boxLabel : 'Item 5',
name : 'xqah',
inputValue : '5'
}, {
boxLabel : 'Item 6',
name : 'xqah',
inputValue : '6'
}, {
boxLabel : 'Item 7',
name : 'xqah',
inputValue : '7'
}]
}, {
xtype : 'tabpanel',
plain : true,
bodyBorder : false,
activeTab : 0,
height : 200,
defaults : {
bodyStyle : 'padding:2px'
},
items : [{
title : '备注',
layout : 'fit',
items : {
xtype : 'textarea',
name : 'remark',
maxLength : 500
}
}, {
title : '编辑推荐',
layout : 'fit',
items : {
xtype : 'textarea',
name : 'by2',
maxLength : 500
}
}, {
title : '作者简介',
layout : 'fit',
items : {
xtype : 'textarea',
name : 'by3',
maxLength : 500
}
}]
}],
buttonAlign : "center",
buttons : [{
text : "修改",
handler : function() {
submitUpdaeForm();
}
}, {
text : "关闭",
handler : function() {
window_edit.hide();
}
}]
});
// 提交表单
function submitUpdaeForm() {
if (updateform.getForm().isValid()) { // 如果验证通过
updateform.getForm().submit({
url : "../student.action?method=update",
waitMsg : '正在保存数据...',
success : onAddSuccessUpdate,
failure : onFailureUpdate
});
}
}
var onFailureUpdate = function(form, action) {
if (action.failureType == "connect") {
Ext.Msg.alert('服务器异常', '服务器异常,请与管理员联系!');
} else {
Ext.Msg.alert('错误', '您输入的用户名和密码错误!');
}
}
var onAddSuccessUpdate = function(form, action) {
Ext.MessageBox.alert("提示", "修改成功!");
window_edit.hide();
}
function editloadForm(id) {
updateform.form.load({
waitMsg : '正在加载数据',
waitTitle : '提示',
url : '../student.action?method=findById',
params : {
id : id
},
method : 'GET',
success : function(form, action) {
// 数据加载成功.
},
failure : function(form, action) {
Ext.Msg.alert('无法加载该数据');
}
});
}
function loadUpdateForm() {
var stulist = grid.getSelectionModel().getSelections();
var idList = [];
if (stulist.length == 0) {
Ext.Msg.alert("提示", "请选择要修改的数据!");
} else if (stulist.length > 1) {
Ext.Msg.alert("提示", "只能选择一条记录操作!");
} else {
for (var i = 0; i < stulist.length; i++) {
idList.push(stulist[i].get('id'));
}
updateform.form.reset();
updateform.isAdd = true;
window_edit.setTitle("修改");
window_edit.show();
var id = idList[0];
editloadForm(id);
}
}
var window_edit = new Ext.Window({
title : '修改',
width : 600,
resizable : false,
autoHeight : true, // 自动适应高度
modal : true,
closeAction : 'hide',
listeners : {
'hide' : function() {
}
},
items : [updateform]
});
@RequestMapping(params = "method=findById")
public ModelAndView findById(int id, HttpServletResponse response) {
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
StringBuffer sb = new StringBuffer();
Student stu = studentService.findById(id);
sb.append("{");
sb.append("success : true,");
sb.append("data : {id :" + stu.getId() + ",idCard : \""
+ stu.getIdCard() + "\",name:\"" + StringUtils.trimToEmpty(stu.getName())
+ "\",email:\"" + StringUtils.trimToEmpty(stu.getEmail()) + "\",sex:\"" + stu.getSex()
+ "\",by1 : \"" + StringUtils.trimToEmpty(stu.getBy1()) + "\",birthday:\""
+ StringUtils.trimToEmpty(stu.getBirthday()) + "\",address:\"" + StringUtils.trimToEmpty(stu.getAddress())
+ "\",xqah:\"" + StringUtils.trimToEmpty(stu.getXqah()) + "\",remark:\""
+ StringUtils.trimToEmpty(stu.getRemark()) + "\",by2:\"" + StringUtils.trimToEmpty(stu.getBy2()) + "\",by3:\""
+StringUtils.trimToEmpty( stu.getBy3()) + "\"}");
sb.append("}");
try {
response.getWriter().write(sb.toString());
} catch (Exception e) {
}
return null;
}
@RequestMapping(params = "method=update")
public ModelAndView update(Student stu,HttpServletResponse response) {
String result = "";
int count = studentService.update(stu);
if(count>0){
result = "{message:'修改成功!',success:true}";
}
try {
response.getWriter().write(result);
} catch (Exception e) {
}
return null;
}