今天继续之前的整理,上篇整理了datagrid的数据显示及其分页功能

获取数据库数据显示在datagrid中:jQuery EasyUI教程之datagrid应用(一)

datagrid实现分页功能:jQuery EasyUI教程之datagrid应用(二)

接下来就是数据的增删改查了,首先我们在页面中添加功能按钮

这里很简单就是datagrid的toolbar属性

接下来我们实现按键的功能

查询比较麻烦我们最后写,先写添加吧,既然要添加,就应该有表格或是输入的文本框吧,还要进行提交,那就要有form表单:

在网页中建一个dialog窗口

在toolbar中设置点击打开dialog

点击添加按钮,然后在页面中弹出了我们写好的dialog窗口

这里我们发现并不好看,我们可以进行页面的规划,用表格包起来进行布局,这里就不说明了,

这样联系人信息填写完事了,但我们发现这个窗口不能提交,也不能取消,所以我们在添加两个按钮(保存和取消)

这时再点击添加,页面变成了下面的样子

这时候点击按钮并没有什么反应,接下来在完善这两个按钮实现其对应功能,

取消按钮,点击后关闭窗后就好了

{text:'取消',iconCls:'icon-cancel',handler:function(){$('#addphoner').dialog('close');}}

保存按钮,点击后进行数据的提交,并接收提交成功后返回的参数

{text:'保存',iconCls:'icon-save',handler:function(){$('#form1').form('submit',{
url:'AddPhonerServlet?type='+type,onSubmit:function(){
var isValid = $(this).form('validate');if(!isValid){
$.messager.show({title:'消息',msg:'提交未通过验证'});} return isValid;},
success:function(data){var msg = eval('(' + data + ')') ;if(msg.success){
$('#dg').datagrid('reload');$('#addphoner').dialog('close');$.messager.show({title:'消息',msg:msg.message});}
else{$.messager.show({title:'消息',msg:msg.message});}}
});}}

之后是在Servlet的doGet方法中接收参数并进行存储

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //转码
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html"); //接收参数
String pName = request.getParameter("pName") ;
String pNumber = request.getParameter("pNumber") ;
String pBirthday = request.getParameter("pBirthday") ;
String pRemark = request.getParameter("pRemark") ; //接收type参数判断是进行存储还是修改指令
String type = request.getParameter("type") ; System.out.println(pName+pNumber+pBirthday+pRemark+type); String msg ="{'success':true,'message':'保存成功'}" ; if(type != null)//非空判断
{
if( pName != null && ! "".equals(pName) && pNumber != null && ! "".equals(pNumber) &&
pBirthday != null && ! "".equals(pBirthday) && pRemark != null && ! "".equals(pRemark) )
{
Phone ph = new Phone() ;
System.out.println(0000);
ph.setPName(pName);
ph.setPNumber(pNumber);
ph.setPRemark(pRemark); //String字符串转日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd") ;
try {
ph.setPBirthday(sdf.parse(pBirthday));
} catch (ParseException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} if(type.equals("add"))
{
new PhoneService().addPhoner(ph);
}
}
}
else
{
msg = "{'success':true,'message':'网络异常'}" ;
} response.getWriter().write(msg);
}

之后service层方法

 //     添加联系人
public void addPhoner(Phone ph)
{
new PhoneDAO().addPhoner(ph);
}

最后是dao层

 //     添加联系人
public void addPhoner(Phone ph)
{
init() ; se.save(ph) ; destroy();
}

添加完成,之后再写修改吧(这里修改跟删除所用的datagrid是一样的,提交的地址也一样,地层的方法就是save变成了update,就不多做介绍了)

页面部分

              {
iconCls:"icon-edit",
text:"修改",
handler:function(){
type = "edit" ;//定义参数在Servlet判断执行保存还是修改操作
$("#form").form("reset") ;//重置表单内容
var it = $("#dg").datagrid("getSelected");//定义变量并获取选中行的数据
if(it){//判断变量是否有值
$("#form1").form("load",{//表单内容赋值,这里因为有时间格式的特殊性我们分开写,
pName:it.pName, pNumber:it.pNumber,//如果没有时间我们可以直接赋值对象
pRemark:it.pRemark, pBirthday:getDate(it.pBirthday)
});
$("#addphoner").dialog("open").dialog("setTitle","Edit Phoner");//打开dialog窗口并设标题
}else{
$.messager.show({title:"消息",msg:"请选中一条数据"});
}
}
}

删除功能

页面部分(将选中记录的主键放到数组集合中,并通过get请求发送到servlet)

             {
iconCls:"icon-delete1",
text:"删除",
handler:function(){
var rt = $("#dg").datagrid("getSelections") ;//获取选中数据的数组
var array = [ ] ;//定义空数组
for(i in rt){//foreach 遍历数组
array.push(rt[i].pNumber) ; //将数据的主键列存入定义的空数组中
}
if(rt.length>0){//判断getSelections获取的数据是否为空
$.messager.confirm("警告", "确定删除?", function(r){//confirm回调函数
if(r){
$.get("DeleteServlet?array="+array, function(data){//get方式发送请求
var msg = eval('(' + data + ')');//解析
if(msg.success){
$("#dg").datagrid("reload");//重新加载datagrid
$.messager.show({title:"消息",msg:msg.message});//显示执行删除动作后后台传递的信息
}
});
}
});
}else{
$.messager.show({title:"提示",msg:"请选中至少一条记录"});//若为空提示消息
}
}
}

servlet的doGet方法(接收传递的主键集合并转成集合形式,通过遍历集合删除数据)

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //转码
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html"); String array = request.getParameter("array"); String[] str = array.split(",") ; System.out.println(str); for(String s : str)
{
new PhoneDAO().deletePhoner(s);
} String msg = "{'success':true,'message':'删除成功'}" ; response.getWriter().write(msg); }

最后就剩查询功能了这个要在之前写好的,查询中稍作修改,抽时间再补充代码

jQuery EasyUI教程之datagrid应用(三)的更多相关文章

  1. jQuery EasyUI教程之datagrid应用(一)

    最近一段时间都在做人事系统的项目,主要用到了EasyUI,数据库操作,然后抽点时间整理一下EasyUI的内容. 这里我们就以一个简洁的电话簿软件为基础,具体地说一下datagrid应用吧 datagr ...

  2. jQuery EasyUI教程之datagrid应用(二)

    上次写到了让数据库数据在网页datagrid显示,我们只是单纯的实现了显示,仔细看的话显示的信息并没有达到我们理想的效果,这里我们丰富一下: 上次显示的结果是这样的 点击查看上篇:jQuery Eas ...

  3. jQuery EasyUI教程之datagrid应用

    一.利用jQuery EasyUI的DataGrid创建CRUD应用 对网页应用程序来说,正确采集和管理数据通常很有必要,DataGrid的CRUD功能允许我们创建页面来列表显示和编辑数据库记录.本教 ...

  4. jQuery EasyUI教程之datagrid应用-1

    一.利用jQuery EasyUI的DataGrid创建CRUD应用 对网页应用程序来说,正确采集和管理数据通常很有必要,DataGrid的CRUD功能允许我们创建页面来列表显示和编辑数据库记录.本教 ...

  5. jQuery EasyUI教程之datagrid应用-2

    二.DataGrid的扩展应用 上一份教程我们创建的一个CRUD应用是使用对话框组件来增加或编辑用户信息.本教程将教你如何创建一个CRUD 数据表格(datagrid). 为了让这些CRUD功能正常工 ...

  6. jQuery EasyUI API - Grid - DataGrid [原创汉化官方API]

    最近在学习jQuery EasyUI,发现中文的文档好少,部分文档不错但它是鸟语的,为了大家也为了自己学习吧,汉化做一下笔记. 有没有说清楚的,或者翻译不正确的地方还请大家谅解指出.. 由于工作时间原 ...

  7. 关于Jquery EasyUI中的DataGrid服务器端分页随记

    一.关于DataGrid的分页和排序参数 对于分页参数不需要用户指定,程序在AJAX请求的时候会带上分页和排序需要的参数 每页显示条数:rows 当前页:page 排序字段:sort  [multiS ...

  8. 【Jquery EasyUI + Servlet】DataGrid,url请求带中文出现乱码的解决方案

    demo.jsp: <% String name = "乱码"; %> $(function(){ $('#dg').datagrid({ url: 'DemoServ ...

  9. Hive教程之metastore的三种模式

    Hive中metastore(元数据存储)的三种方式: 内嵌Derby方式 Local方式 Remote方式 [一].内嵌Derby方式 这个是Hive默认的启动模式,一般用于单元测试,这种存储方式有 ...

随机推荐

  1. svn 架设

    1.yum install subversion  openssl-devel -y 2. cd /data/svn 3. svnadmin create remote 4. 编辑conf 下 aut ...

  2. working with fitnesse wiki pages

    fitnesse提供一个简单易用的wiki创建一个web页面用于测试.测试页面有一个button,允许所有的测试在这个页面运行,因此任何人在任何时间都可以去这个页面点击这个按钮,查看测试是否通过.fi ...

  3. ASP.NET MVC Web API For APP

    近来很多大型的平台都公开了Web API.比如百度地图 Web API,做过地图相关的人都熟悉.公开服务这种方式可以使它易于与各种各样的设备和客户端平台集成功能,以及通过在浏览器中使用 JavaScr ...

  4. LinuxStudyNote

    LinuxStudyNoteBy_Silvers:(E:\Video_Tutorials\Linux自学视频\linux视频教程-后盾网视频教程)22:25 2016/1/28============ ...

  5. struts2中的jsp值传到后台action接收的三种方法

    struts2中的Action接收表单传递过来的参数有3种方法: 如,登陆表单login.jsp: <form action="login" method="pos ...

  6. Android 资源(resource详解(转)

    本文介绍在Android开发中关于资源文件的存储操作.对于Android资源也是非常重要的,主要包括文本字符串(strings).颜色(colors).数组(arrays).动画(anim).布局(l ...

  7. Android--带你一点点封装项目 MVP+BaseActivity+Retrofit+Dagger+RxJava(一)

    1,其实早就想把这些东西给封装封装的,一直没有时间,今天刚好项目进入到测试阶段了,Bug同事在哪儿测试的飞起,但发现提bug的尽然是我(得意脸),然后上午把ios的包测试了一下,顺便把服务器给测挂了( ...

  8. 在access中如何创建数据库。你认为数据库在网站开发中所扮演的角色是什么。使用数据库和使用文件,两者的优缺点各是什么。

    首先在access里面填写所用的信息,将数据库创建,在导入程序设计里进行完成代码. 首先打开我们的access程序,打开方法是单击开始——所有程序. 所有程序中找到microsoft office文件 ...

  9. Nodejs express 文件上传

    文件上传 以下我们创建一个用于上传文件的表单,使用 POST 方法,表单 enctype 属性设置为 multipart/form-data. index.htm 文件代码修改如下: <html ...

  10. (一)sql入门 导读

    从转行做软件始,就开始接触sql,但还是不怎么深入,回忆3月份找工作的时候,左关联都没有写出来,真是丢脸,以此博客做个认真的开始. 以后的日子,遇到了圆柱体的空心物体,我就应该联想到一样东西,那就是数 ...