jQuery EasyUI教程之datagrid应用(三)

今天继续之前的整理,上篇整理了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); 

    }

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

时间: 2024-09-29 09:30:29

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

jQuery EasyUI教程之datagrid应用(二)

上次写到了让数据库数据在网页datagrid显示,我们只是单纯的实现了显示,仔细看的话显示的信息并没有达到我们理想的效果,这里我们丰富一下: 上次显示的结果是这样的 点击查看上篇:jQuery EasyUI教程之datagrid应用(一) 这里不难发现生日的格式是毫秒(long型数据),并不是我们想要的年月日的格式,那我们就修改一下 我们在js中写入格式时间的方法,并在生日一列用formatter来调用方法格式时间, //格式化时间 //把long型日期转为想要类型 function getDa

jQuery EasyUI教程之datagrid应用(一)

一.利用jQuery EasyUI的DataGrid创建CRUD应用 对网页应用程序来说,正确采集和管理数据通常很有必要,DataGrid的CRUD功能允许我们创建页面来列表显示和编辑数据库记录.本教程将教会你如何运用jQuery EasyUI框架来实现DataGrid的CRUD功能 . 我们会用到如下插件: · datagrid: 列表显示数据. · dialog: 增加或编辑单个用户信息. · form: 用来提交表单数据. · messager: 用来显示操作信息. 第一步:准备数据库 使

jQuery EasyUI教程之datagrid应用

三.设定或定制各种功能 1.增加分页 创建DataGrid数据表格 设置“url”属性,用来装入远端服务器数据,服务器返回JSON格式数据. Html代码代码   <table id="tt" class="easyui-datagrid" style="width:600px;height:250px" url="datagrid2_getdata.php" title="Load Data" ic

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

jQuery EasyUI API - Grid - DataGrid [原创汉化官方API] 2014-04-02   DataGrid 继承自 $.fn.panel.defaults,覆盖默认值 $.fn.datagrid.defaults. DataGrid控件显示数据以表格的形式提供了丰富的选择,支持排序,组和编辑数据. DataGrid控件被设计来减少开发时间和要求开发商没有特定的知识.它是轻量级的和功能丰富的.合并单元格,多列标题,冻结列和页脚是仅有的几个特点. [依赖于] pane

jQuery easyui中获取datagrid某一列的值之和

我想实现的功能就是加载datagrid之和能够计算出某一列的值之和,删除某一行数据的时候会从总数里面减去这列这行的数据,新增一条记录的时候也会把这个数据加在总数上面..说起来不知道能不能被人理解... 求大神帮忙.. 下面是部分代码.. 有些代码已经省略了..  怎么获取“我是那个数”的所有列的值的和呢?? 和删除增加那列数据呢 $(function() {$('#content').datagrid( {toolbar : [ {text : '新增',iconCls : 'icon-add'

jQuery基础教程之is()方法和has() 方法

is()方法 —— 用于筛选 语法: jQueryObject.is( expr )返回值: is()函数的返回值为Boolean类型.true或者false.只要其中至少有一个元素符合给定的表达式就返回true,否则就返回false.说明: is()方法用于判断与当前jQuery对象相匹配的元素是否符合指定的表达式.这里的表达式包括:选择器(字符串).DOM元素(Element).jQuery对象.函数.可以看出来,它是根据选择器.DOM元素或jQuery 对象来检测匹配元素集合. has()

jQuery easyui 扩展form插件的三个方法

$.extend($.fn.form.methods, { serialize: function(jq){ var arrayValue = $(jq[0]).serializeArray(); var json = {}; $.each(arrayValue, function() { var item = this; if (json[item["name"]]) { json[item["name"]] = json[item["name"

ASP.NET网站权限设计实现(三)——套用JQuery EasyUI列表显示数据、分页、查询

一.说明: JQuery EasyUI下载地址:http://jquery-easyui.wikidot.com/download,最新版本1.2.2. 首先预览一下界面: 本例实现的功能: 1.多标签 2.分页列表显示数据 3.获取选中行的标识值,删除选中行 实现以上功能主要使用了: 1.layout:布局 2.tabs:多标签 3.datagrid:表格显示数据,并可以分页 4.messager:消息框 5.window:窗口 要了解用法,下载之后,参阅demo文件夹下的demo和官方文档.

Jquery EasyUI的添加,修改,删除,查询等基本操作介绍

http://www.jb51.net/article/42016.htm 初识Jquery EasyUI看了一些博主用其开发出来的项目,页面很炫,感觉功能挺强大,效果也挺不错,最近一直想系统学习一套前台控件,于是在网上找了一些参考示例.写了一些基本的增删改查功能,算是对该控件的基本入门.后续有时间继续深入学习. 在学习jquery easyui前应该先到官网下载最新版本http://www.jeasyui.com/download/index.php 先看一下运行后的页面 1.列表展示 2.新