我们之前在博客类别管理界面的jsp中,是用简单的alter表示,函数被调用了,现在,我们就来真正的进行数据库操作。
toolbar : [ {
iconCls : 'icon-add', //图标
text : '添加', //名称
handler : function() { //回调函数
alert("添加");
}
}, '-', {
iconCls : 'icon-edit',
text : '修改',
handler : function() {
alert("添加");
}
}, '-', {
iconCls : 'icon-edit',
text : '删除',
handler : function() {
alert("删除");
}
}, '-', {
iconCls : 'icon-reload',
text : '刷新',
handler : function() {
alert("刷新");
}
} ],
//同列属性,但是这些列将会冻结在左侧
frozenColumns : [ [ {
field : 'checkbox',
checkbox : true
}, //复选框
{
field : 'id',
title : '编号',
width : 200
} //id字段
] ],
columns : [ [ {
field : 'typename',
title : '博客分类名称',
width : 300
}, //typename 字段
{
field : 'ordernum',
title : '博客类别排序',
width : 300
}, //ordernum 字段
] ],
现在进入前后台同步开发,按照业务的顺序
添加和编辑的界面可以合成一个,因为字段都是两个,名称和顺序,这样如何区分是新建还是修改,因为如果你做操作前,是存在的话,dategrid中是存在你的博客类别的id的,那么就可以通过是否传递id给后台作为区分。后台判断,如果有BlogType的id字段不为null,那么就做修改,如果为null,那就证明了,这是新的类别,那就做新建操作。
具体看代码
页面:
toolbar : [ {
iconCls : 'icon-add', //图标
text : '添加', //名称
handler : function() { //回调函数
//打开对话框并且设置标题
$("#dlg").dialog("open").dialog("setTitle", "添加博客类别信息");
//将url设置为添加
url = "${pageContext.request.contextPath }/admin/saveType";
}
},
======================================================================
<!--添加博客类别信息的对话框 -->
<div id="dlg" class="easyui-dialog"
style="width: 500px; height: 180px; padding: 10px 20px" closed="true"
buttons="#dlg-buttons">
<form id="fm" method="post">
<table cellspacing="8px">
<tr>
<td>博客类别名称</td>
<td><input type="text" id="typename" name="typename"
class="easyui-validatebox" required="true"></td>
</tr>
<tr>
<td>博客类别排序</td>
<td><input type="text" id="ordernum" name="ordernum"
class="easyui-numberbox" required="true" style="width: 60px"> (博客类别会根据序号从小到大排列)
</td>
</tr>
</table>
</form>
</div>
<div id="dlg-buttons">
<div>
<a href="javascript:saveBlogType()" class="easyui-linkbutton"
iconCls="icon-ok" plain="true">保存</a> <a
href="javascript:closeBlogTypeDialog()" class="easyui-linkbutton"
iconCls="icon-cancel" plain="true">关闭</a>
</div>
</div>
======================================================================
function saveBlogType() {
$("#fm").form("submit", {
url : url,
onSubmit : function() {
return $(this).form("validate");
}, //进行验证,通过才让提交
success : function(result) {
if (result.status==200) {
$.messager.alert("系统提示", "博客类别保存成功");
$("typename").val(""); //保存成功后将内容置空
$("ordernum").val("");
$("#dlg").dialog("close"); //关闭对话框
$("#dg").datagrid("reload"); //刷新一下
} else {
$.messager.alert("系统提示", "博客类别保存失败");
return;
}
}
});
}
========================================================================
服务端:
/**
* 添加博客类别
*
* @param type
* @return
*/
@RequestMapping(value = "saveType", method = RequestMethod.POST)
@ResponseBody
public MyResult saveBlogType(TBlogtype type, HttpServletResponse response) {
int n;
if (type.getId() == null) {
n = blogTypeService.addBlogType(type);// 没有记录,添加
} else {
n = blogTypeService.updateBlogType(type);// 有记录,修改
}
// response.setContentType("application/json");
if (n > 0) {
return MyResult.ok();
} else {
return MyResult.build(400, "error");
}
}
========================================================================
删除的页面代码
iconCls : 'icon-edit',
text : '删除',
handler : function() {
//获取选中要删除的行
var selectedRows = $("#dg").datagrid("getSelections");
//判断是否有选择的行
if(selectedRows.length == 0) {
$.messager.alert("系统提示", "请选择要删除的数据");
return;
}
//定义选中 选中id数组
var idsStr = [];
//循环遍历将选中行的id push进入数组
for(var i = 0; i < selectedRows.length; i++) {
idsStr.push(selectedRows[i].id);
}
//将数组安装,连接成字符串
var ids = idsStr.join(","); //1,2,3,4
//提示是否确认删除
$.messager.confirm("系统提示", "<font color=red>您确定要删除选中的"+selectedRows.length+"条数据么?</font>", function(r) {
if(r) {
$.post("${pageContext.request.contextPath}/admin/deleteType",
{"ids": ids}, function(result){
if(result.status==400) {
$.messager.alert("系统提示", '该类别下有博客,不能删除!');
} else if(result.status==200) {
$.messager.alert("系统提示", "数据删除成功!");
$("#dg").datagrid("reload");
} else {
$.messager.alert("系统提示", "数据删除失败!");
}
});
}
});
}
},
======================================================================
服务端代码:
/**
* 删除博客内容
*
* @param ids
* @param response
* @return
*/
@RequestMapping("deleteType")
@ResponseBody
public MyResult deleteBlogType(String ids, HttpServletResponse response) {
String[] idsArr = ids.split(",");
for (String id : idsArr) {
Integer i = new Integer(id);
// 根据博客类别查询博客,如果有,则不能够删除,暂时先放着
blogTypeService.deleteBlogType(i);
}
response.setContentType("application/json");
MyResult myResult = new MyResult(200, "删除成功", null);
return myResult;
}
===================================================================
刷新页面代码
{
iconCls : 'icon-reload',
text : '刷新',
handler : function() {
$("#dg").datagrid("reload");
}
} ],
==================================================================
关闭对话框代码
function closeBlogTypeDialog() {
$("typeName").val(""); //保存成功后将内容置空
$("typeNum").val("");
$("#dlg").dialog("close"); //关闭对话框
}
==================================================================
以上代码,基本都是easyui的最常用的用法,我参考了资料,最主要是http://blog.csdn.net/xp541130126/article/details/70267842(在此谢过)
做到现在,基本上把博客类别这块整完了。现在开始博客部分的编辑,希望对读者有帮助,好记性不如烂笔头,行动起来吧!
彩蛋: