后台数据使用java,可用Eclipse打开项目文件查看源码。或者将WebRoot下的文件解压到tomcat下直接运行。 简要说明:
package com.thxopen.dt.bean; /** * Created by Administrator on 2015/4/13. */ public class User { public String name; public String position; public String salary; public String start_date; public String office; public String extn; public Integer status; public Integer role; public User(String name, String position, String salary, String start_date, String office, String extn, Integer status, Integer role) { this.name = name; this.position = position; this.salary = salary; this.start_date = start_date; this.office = office; this.extn = extn; this.status = status; this.role = role; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPosition() { return position; } public void setPosition(String position) { this.position = position; } public String getSalary() { return salary; } public void setSalary(String salary) { this.salary = salary; } public String getStart_date() { return start_date; } public void setStart_date(String start_date) { this.start_date = start_date; } public String getOffice() { return office; } public void setOffice(String office) { this.office = office; } public String getExtn() { return extn; } public void setExtn(String extn) { this.extn = extn; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } public Integer getRole() { return role; } public void setRole(Integer role) { this.role = role; } }Config.java
package com.thxopen.dt.sys; import javax.servlet.ServletContext; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; /** * Created by Administrator on 2015/4/16. */ public class Config { String deUrl= "jdbc:sqlite:/"; public String url = ""; public ServletContext application; public Config(ServletContext application){ this.application = application; try { Class.forName("org.sqlite.JDBC"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public Connection getConn(){ url = deUrl+application.getRealPath("").replace("\\", "/") + "/dt.sqlite3"; // url = deUrl + "d:\\workspaces\\workspaces\\Datatables-serverSide\\web\\".replace("\\", "/") + "/dt.sqlite3"; try { return DriverManager.getConnection(url); } catch (SQLException e) { e.printStackTrace(); return null; } } }
<%@ page import="java.sql.ResultSet" %> <%@ page import="java.sql.Statement" %> <%@ page import="java.sql.DriverManager" %> <%@ page import="java.sql.Connection" %> <%@ page import="com.thxopen.dt.bean.User" %> <%@ page import="com.google.gson.*" %> <%@ page import="java.util.*" %> <%@ page import="java.net.URLDecoder" %> <%@ page import="com.thxopen.dt.sys.Config" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <% ResultSet rs = null; Statement stmt = null; Connection conn = new Config(application).getConn(); String table = "user"; //数据起始位置 String startIndex = request.getParameter("startIndex"); //数据长度 String pageSize = request.getParameter("pageSize"); //总记录数 String total = "0"; //定义列名 String[] cols = {"name", "position", "salary", "start_date", "office", "extn", "status", "role"}; //获取客户端需要那一列排序 String orderColumn = request.getParameter("orderColumn"); if(orderColumn == null){ orderColumn = "name"; } //获取排序方式 默认为asc String orderDir = request.getParameter("orderDir"); if(orderDir == null){ orderDir = "asc"; } //获取用户过滤框里的字符 List<String> sArray = new ArrayList<String>(); String fuzzy = request.getParameter("fuzzySearch"); if("true".equals(fuzzy)){ String searchValue = request.getParameter("fuzzy"); if (searchValue!=null&&!searchValue.equals("")) { sArray.add(" name like '%" + searchValue + "%'"); sArray.add(" position like '%" + searchValue + "%'"); sArray.add(" salary like '%" + searchValue + "%'"); sArray.add(" start_date like '%" + searchValue + "%'"); sArray.add(" office like '%" + searchValue + "%'"); sArray.add(" extn like '%" + searchValue + "%'"); } }else{ String name = request.getParameter("name"); if (name!=null&&!name.equals("")) { sArray.add(" name like '%" + name + "%'"); } String position = request.getParameter("position"); if (position!=null&&!position.equals("")) { sArray.add(" position like '%" + position + "%'"); } String office = request.getParameter("office"); if (office!=null&&!office.equals("")) { sArray.add(" office like '%" + office + "%'"); } String extn = request.getParameter("extn"); if (extn!=null&&!extn.equals("")) { sArray.add(" extn like '%" + extn + "%'"); } String role = request.getParameter("role"); if (role!=null&&!role.equals("")) { sArray.add(" role = " + role + ""); } String status = request.getParameter("status"); if (status!=null&&!status.equals("")) { sArray.add(" status = " + status + ""); } } String individualSearch = ""; if (sArray.size() == 1) { individualSearch = sArray.get(0); } else if (sArray.size() > 1) { for (int i = 0; i < sArray.size() - 1; i++) { individualSearch += sArray.get(i) + " or "; } individualSearch += sArray.get(sArray.size() - 1); } List<User> users = new ArrayList<User>(); if (conn != null) { String recordsTotalSql = "select count(1) as total from " + table; stmt = conn.createStatement(); String searchSQL = ""; String sql = "SELECT * FROM " + table; if (individualSearch != "") { searchSQL = " where " + individualSearch; } sql += searchSQL; recordsTotalSql += searchSQL; sql += " order by " + orderColumn + " " + orderDir; recordsTotalSql += " order by " + orderColumn + " " + orderDir; sql += " limit " + startIndex + ", " + pageSize; rs = stmt.executeQuery(sql); while (rs.next()) { users.add(new User(rs.getString("name"), rs.getString("position"), rs.getString("salary"), rs.getString("start_date"), rs.getString("office"), rs.getString("extn"), rs.getInt("status"), rs.getInt("role") )); } rs = stmt.executeQuery(recordsTotalSql); while (rs.next()) { total = rs.getString("total"); } } Map<Object, Object> info = new HashMap<Object, Object>(); info.put("pageData", users); info.put("total", total); String json = new Gson().toJson(info); rs.close(); stmt.close(); conn.close(); out.write(json); %>index.htm
<!DOCTYPE html> <html> <head> <title>Datatable-serverSide 自行封装请求参数和返回数据例子</title> <!-- Bootstrap --> <link rel="stylesheet" href="asset/lib/bootstrap-2.3.2/css/bootstrap.min.css" media="screen"> <link rel="stylesheet" href="asset/lib/bootstrap-2.3.2/css/bootstrap-responsive.min.css" media="screen"> <!-- FontAwesome --> <link rel="stylesheet" href="asset/lib/font-awesome-4.2.0/css/font-awesome.min.css"> <!-- DataTables CSS start--> <link rel="stylesheet" href="asset/lib/dataTables-1.10.7/plugins/integration/bootstrap/2/dataTables.bootstrap.css"> <link rel="stylesheet" href="asset/lib/dataTables-1.10.7/plugins/integration/font-awesome/dataTables.fontAwesome.css"> <!-- DataTables CSS end--> <link rel="stylesheet" href="asset/css/user-manage.css"> </head> <body> <div class="container-fluid"> <div class="row-fluid"> <div class="span12" id="content"> <div class="row-fluid"> <div class="navbar" id="breadcrumb"> <div class="navbar-inner"> <ul class="breadcrumb"> <li> <a href="#">首页</a> <span class="divider">/</span> </li> <li class="active">用户管理</li> </ul> </div> </div> </div> <div class="row-fluid"> <div class="span12"> <div class="btn-toolbar"> <div class="pull-right"> <div class="input-append"> <input type="text" placeholder="模糊查询" id="fuzzy-search"> <div class="btn-group"> <button type="button" class="btn" id="btn-simple-search"><i class="fa fa-search"></i></button> <button type="button" class="btn" title="高级查询" id="toggle-advanced-search"> <i class="fa fa-angle-double-down"></i> </button> </div> </div> </div> <button type="button" class="btn btn-primary" id="btn-add"><i class="fa fa-plus"></i> 添加</button> <button type="button" class="btn btn-danger" id="btn-del"><i class="fa fa-remove"></i> 批量删除</button> </div> </div> </div> <div class="row-fluid" style="display:none;" id="div-advanced-search"> <form class="form-inline well"> <span>姓名:</span> <input type="text" class="input-medium" placeholder="姓名" id="name-search"> <span>职位:</span> <input type="text" class="input-medium" placeholder="职位" id="position-search"> <span>工作地点:</span> <input type="text" class="input-medium" placeholder="工作地点" id="office-search"> <span>编号:</span> <input type="text" class="input-medium" placeholder="编号" id="extn-search"> <span>在线状态:</span> <select class="input-small" id="status-search"> <option value="">全部</option> <option value="1">在线</option> <option value="0">离线</option> </select> <select class="input-small" id="role-search"> <option value="">全部</option> <option value="1">管理员</option> <option value="0">操作员</option> </select> <button type="button" class="btn" id="btn-advanced-search"><i class="fa fa-search"></i> 查询</button> </form> </div> <div class="block info-block" id="user-view"> <div class="navbar navbar-inner block-header"> <div class="block-title">用户详情</div> <div class="header-buttons"> <button type="button" class="btn btn-primary" id="btn-view-edit">修改</button> </div> </div> <div class="block-content info-content clearfix"> <div class="row-fluid"> <div class="span4"> <label class="prop-name">编号:</label> <div class="prop-value" id="extn-view"></div> </div> <div class="span4"> <label class="prop-name">姓名:</label> <div class="prop-value" id="name-view"></div> </div> <div class="span4"> <label class="prop-name">角色:</label> <div class="prop-value" id="role-view"></div> </div> </div> <div class="row-fluid"> <div class="span4"> <label class="prop-name">职位:</label> <div class="prop-value" id="position-view"></div> </div> <div class="span4"> <label class="prop-name">薪水:</label> <div class="prop-value" id="salary-view"></div> </div> <div class="span4"> <label class="prop-name">状态:</label> <div class="prop-value" id="status-view"></div> </div> </div> <div class="row-fluid"> <div class="span4"> <label class="prop-name">入职时间:</label> <div class="prop-value" id="start-date-view"></div> </div> <div class="span8"> <label class="prop-name">办公地点:</label> <div class="prop-value" id="office-view"></div> </div> </div> <div class="row-fluid"> <div class="span12"> <label class="prop-name">备注:</label> <div class="prop-value"></div> </div> </div> </div> </div> <div class="block info-block" id="user-add" style="display:none;"> <div class="navbar navbar-inner block-header"> <div class="block-title">添加账户</div> <div class="header-buttons"> <button type="button" class="btn btn-primary" id="btn-save-add">确定添加</button> <button type="button" class="btn btn-cancel">取消</button> </div> </div> <div class="block-content info-content clearfix"> <form id="form-add"> <div class="control-group"> <label class="control-label" for="extn-add"><span class="red-asterisk">*</span>编号:</label> <div class="controls"> <input type="text" id="extn-add" name="extn-add"> </div> </div> <div class="control-group"> <label class="control-label" for="name-add"><span class="red-asterisk">*</span>姓名:</label> <div class="controls"> <input type="text" id="name-add" name="name-add"> </div> </div> <div class="control-group"> <label class="control-label" for="role-add">角色:</label> <div class="controls"> <select id="role-add" name="role-add"> <option value="1" selected>管理员</option> <option value="0">操作员</option> </select> </div> </div> <div class="control-group"> <label class="control-label" for="position-add">职位:</label> <div class="controls"> <input type="text" id="position-add" name="position-add"> </div> </div> <div class="control-group"> <label class="control-label" for="salary-add">薪水:</label> <div class="controls"> <input type="text" id="salary-add" name="salary-add"> </div> </div> <div class="control-group"> <label class="control-label" for="start-date-add">入职时间:</label> <div class="controls"> <input type="text" id="start-date-add" name="start-date-add"> </div> </div> <div class="control-group"> <label class="control-label" for="office-add">办公地点:</label> <div class="controls"> <input type="text" class="xlarge" id="office-add" name="office-add"> </div> </div> <div class="control-group"> <label class="control-label" for="remark-add">备注:</label> <div class="controls"> <input type="text" class="xxxlarge" id="remark-add" name="remark-add"> </div> </div> </form> </div> </div> <div class="block info-block" id="user-edit" style="display:none;"> <div class="navbar navbar-inner block-header"> <div class="block-title">修改账户:<span id="title-edit"></span></div> <div class="header-buttons"> <button type="button" class="btn btn-primary" id="btn-save-edit">保存更改</button> <button type="button" class="btn btn-cancel">取消</button> </div> </div> <div class="block-content info-content clearfix"> <form id="form-edit"> <div class="control-group"> <label class="control-label" for="extn-edit"><span class="red-asterisk">*</span>编号:</label> <div class="controls"> <input type="text" id="extn-edit" name="extn-edit"> </div> </div> <div class="control-group"> <label class="control-label" for="name-edit"><span class="red-asterisk">*</span>姓名:</label> <div class="controls"> <input type="text" id="name-edit" name="name-edit"> </div> </div> <div class="control-group"> <label class="control-label" for="role-edit">角色:</label> <div class="controls"> <select id="role-edit" name="role-edit"> <option value="1" selected>管理员</option> <option value="0">操作员</option> </select> </div> </div> <div class="control-group"> <label class="control-label" for="position-edit">职位:</label> <div class="controls"> <input type="text" id="position-edit" name="position-edit"> </div> </div> <div class="control-group"> <label class="control-label" for="salary-edit">薪水:</label> <div class="controls"> <input type="text" id="salary-edit" name="salary-edit"> </div> </div> <div class="control-group"> <label class="control-label" for="start-date-edit">入职时间:</label> <div class="controls"> <input type="text" id="start-date-edit" name="start-date-edit"> </div> </div> <div class="control-group"> <label class="control-label" for="office-edit">办公地点:</label> <div class="controls"> <input type="text" class="xlarge" id="office-edit" name="office-edit"> </div> </div> <div class="control-group"> <label class="control-label" for="remark-edit">备注:</label> <div class="controls"> <input type="text" class="xxxlarge" id="remark-edit" name="remark-edit"> </div> </div> </form> </div> </div> <div class="row-fluid"> <div class="span12" id="div-table-container"> <table class="table table-striped table-bordered table-hover table-condensed" id="table-user" cellspacing="0" width="100%"> <thead> <tr> <th> <input type="checkbox" name="cb-check-all"> </th> <th>姓名</th> <th>职位</th> <th>状态</th> <th>入职时间</th> <th>操作</th> </tr> </thead> <tbody> </tbody> <tfoot> <tr> <th> <input type="checkbox" name="cb-check-all"> </th> <th>姓名</th> <th>职位</th> <th>状态</th> <th>入职时间</th> <th>操作</th> </tr> </tfoot> </table> </div> </div> </div> </div> </div> <script src="asset/lib/json2.js"></script> <!-- JQuery --> <script src="asset/lib/jquery-1.11.3.min.js"></script> <!-- Bootstrap --> <script src="asset/lib/bootstrap-2.3.2/js/bootstrap.min.js"></script> <!-- SpinJS--> <script src="asset/lib/spin-2.1.0/jquery.spin.merge.js"></script> <!-- lhgdialog --> <script src="asset/lib/lhgdialog-4.2.0/lhgdialog.js?skin=bootstrap2"></script> <!-- DataTables JS--> <script src="asset/lib/dataTables-1.10.7/media/js/jquery.dataTables.js"></script> <script src="asset/lib/dataTables-1.10.7/plugins/integration/bootstrap/2/dataTables.bootstrap.js"></script> <!-- DataTables JS end--> <script src="asset/js/constant.js"></script> <script src="asset/js/user-manage.js"></script> </body> </html>constant.js
/*常量*/ var CONSTANT = { DATA_TABLES : { DEFAULT_OPTION : { //DataTables初始化选项 language: { "sProcessing": "处理中...", "sLengthMenu": "每页 _MENU_ 项", "sZeroRecords": "没有匹配结果", "sInfo": "当前显示第 _START_ 至 _END_ 项,共 _TOTAL_ 项。", "sInfoEmpty": "当前显示第 0 至 0 项,共 0 项", "sInfoFiltered": "(由 _MAX_ 项结果过滤)", "sInfoPostFix": "", "sSearch": "搜索:", "sUrl": "", "sEmptyTable": "表中数据为空", "sLoadingRecords": "载入中...", "sInfoThousands": ",", "oPaginate": { "sFirst": "首页", "sPrevious": "上页", "sNext": "下页", "sLast": "末页", "sJump": "跳转" }, "oAria": { "sSortAscending": ": 以升序排列此列", "sSortDescending": ": 以降序排列此列" } }, autoWidth: false, //禁用自动调整列宽 stripeClasses: ["odd", "even"],//为奇偶行加上样式,兼容不支持CSS伪类的场合 order: [], //取消默认排序查询,否则复选框一列会出现小箭头 processing: false, //隐藏加载提示,自行处理 serverSide: true, //启用服务器端分页 searching: false //禁用原生搜索 }, COLUMN: { CHECKBOX: { //复选框单元格 className: "td-checkbox", orderable: false, width: "30px", data: null, render: function (data, type, row, meta) { return '<input type="checkbox" class="iCheck">'; } } }, RENDER: { //常用render可以抽取出来,如日期时间、头像等 ELLIPSIS: function (data, type, row, meta) { data = data||""; return '<span title="' + data + '">' + data + '</span>'; } } } };user-manage.js
$(function (){ var $wrapper = $('#div-table-container'); var $table = $('#table-user'); var _table = $table.dataTable($.extend(true,{},CONSTANT.DATA_TABLES.DEFAULT_OPTION, { ajax : function(data, callback, settings) {//ajax配置为function,手动调用异步查询 //手动控制遮罩 $wrapper.spinModal(); //封装请求参数 var param = userManage.getQueryCondition(data); $.ajax({ type: "GET", url: "datasource.jsp", cache : false, //禁用缓存 data: param, //传入已封装的参数 dataType: "json", success: function(result) { //setTimeout仅为测试延迟效果 setTimeout(function(){ //异常判断与处理 if (result.errorCode) { $.dialog.alert("查询失败。错误码:"+result.errorCode); return; } //封装返回数据,这里仅演示了修改属性名 var returnData = {}; returnData.draw = data.draw;//这里直接自行返回了draw计数器,应该由后台返回 returnData.recordsTotal = result.total; returnData.recordsFiltered = result.total;//后台不实现过滤功能,每次查询均视作全部结果 returnData.data = result.pageData; //关闭遮罩 $wrapper.spinModal(false); //调用DataTables提供的callback方法,代表数据已封装完成并传回DataTables进行渲染 //此时的数据需确保正确无误,异常判断应在执行此回调前自行处理完毕 callback(returnData); },200); }, error: function(XMLHttpRequest, textStatus, errorThrown) { $.dialog.alert("查询失败"); $wrapper.spinModal(false); } }); }, columns: [ CONSTANT.DATA_TABLES.COLUMN.CHECKBOX, { className : "ellipsis", //文字过长时用省略号显示,CSS实现 data: "name", render : CONSTANT.DATA_TABLES.RENDER.ELLIPSIS,//会显示省略号的列,需要用title属性实现划过时显示全部文本的效果 }, { className : "ellipsis", data: "position", render : CONSTANT.DATA_TABLES.RENDER.ELLIPSIS, //固定列宽,但至少留下一个活动列不要固定宽度,让表格自行调整。不要将所有列都指定列宽,否则页面伸缩时所有列都会随之按比例伸缩。 //切记设置table样式为table-layout:fixed; 否则列宽不会强制为指定宽度,也不会出现省略号。 width : "80px" }, { data : "status", width : "80px", render : function(data,type, row, meta) { return '<i class="fa fa-male"></i> '+(data?"在线":"离线"); } }, { data : "start_date", width : "80px" }, { className : "td-operation", data: null, defaultContent:"", orderable : false, width : "120px" } ], "createdRow": function ( row, data, index ) { //行渲染回调,在这里可以对该行dom元素进行任何操作 //给当前行加样式 if (data.role) { $(row).addClass("info"); } //给当前行某列加样式 $('td', row).eq(3).addClass(data.status?"text-success":"text-error"); //不使用render,改用jquery文档操作呈现单元格 var $btnEdit = $('<button type="button" class="btn btn-small btn-primary btn-edit">修改</button>'); var $btnDel = $('<button type="button" class="btn btn-small btn-danger btn-del">删除</button>'); $('td', row).eq(5).append($btnEdit).append($btnDel); }, "drawCallback": function( settings ) { //渲染完毕后的回调 //清空全选状态 $(":checkbox[name='cb-check-all']",$wrapper).prop('checked', false); //默认选中第一行 $("tbody tr",$table).eq(0).click(); } })).api();//此处需调用api()方法,否则返回的是JQuery对象而不是DataTables的API对象 $("#btn-add").click(function(){ userManage.addItemInit(); }); $("#btn-del").click(function(){ var arrItemId = []; $("tbody :checkbox:checked",$table).each(function(i) { var item = _table.row($(this).closest('tr')).data(); arrItemId.push(item); }); userManage.deleteItem(arrItemId); }); $("#btn-simple-search").click(function(){ userManage.fuzzySearch = true; //reload效果与draw(true)或者draw()类似,draw(false)则可在获取新数据的同时停留在当前页码,可自行试验 // _table.ajax.reload(); // _table.draw(false); _table.draw(); }); $("#btn-advanced-search").click(function(){ userManage.fuzzySearch = false; _table.draw(); }); $("#btn-save-add").click(function(){ userManage.addItemSubmit(); }); $("#btn-save-edit").click(function(){ userManage.editItemSubmit(); }); //行点击事件 $("tbody",$table).on("click","tr",function(event) { $(this).addClass("active").siblings().removeClass("active"); //获取该行对应的数据 var item = _table.row($(this).closest('tr')).data(); userManage.currentItem = item; userManage.showItemDetail(item); }); $table.on("change",":checkbox",function() { if ($(this).is("[name='cb-check-all']")) { //全选 $(":checkbox",$table).prop("checked",$(this).prop("checked")); }else{ //一般复选 var checkbox = $("tbody :checkbox",$table); $(":checkbox[name='cb-check-all']",$table).prop('checked', checkbox.length == checkbox.filter(':checked').length); } }).on("click",".td-checkbox",function(event) { //点击单元格即点击复选框 !$(event.target).is(":checkbox") && $(":checkbox",this).trigger("click"); }).on("click",".btn-edit",function() { //点击编辑按钮 var item = _table.row($(this).closest('tr')).data(); $(this).closest('tr').addClass("active").siblings().removeClass("active"); userManage.currentItem = item; userManage.editItemInit(item); }).on("click",".btn-del",function() { //点击删除按钮 var item = _table.row($(this).closest('tr')).data(); $(this).closest('tr').addClass("active").siblings().removeClass("active"); userManage.deleteItem([item]); }); $("#toggle-advanced-search").click(function(){ $("i",this).toggleClass("fa-angle-double-down fa-angle-double-up"); $("#div-advanced-search").slideToggle("fast"); }); $("#btn-info-content-collapse").click(function(){ $("i",this).toggleClass("fa-minus fa-plus"); $("span",this).toggle(); $("#user-view .info-content").slideToggle("fast"); }); $("#btn-view-edit").click(function(){ userManage.editItemInit(userManage.currentItem); }); $(".btn-cancel").click(function(){ userManage.showItemDetail(userManage.currentItem); }); }); var userManage = { currentItem : null, fuzzySearch : true, getQueryCondition : function(data) { var param = {}; //组装排序参数 if (data.order&&data.order.length&&data.order[0]) { switch (data.order[0].column) { case 1: param.orderColumn = "name"; break; case 2: param.orderColumn = "position"; break; case 3: param.orderColumn = "status"; break; case 4: param.orderColumn = "start_date"; break; default: param.orderColumn = "name"; break; } param.orderDir = data.order[0].dir; } //组装查询参数 param.fuzzySearch = userManage.fuzzySearch; if (userManage.fuzzySearch) { param.fuzzy = $("#fuzzy-search").val(); }else{ param.name = $("#name-search").val(); param.position = $("#position-search").val(); param.office = $("#office-search").val(); param.extn = $("#extn-search").val(); param.status = $("#status-search").val(); param.role = $("#role-search").val(); } //组装分页参数 param.startIndex = data.start; param.pageSize = data.length; return param; }, showItemDetail : function(item) { $("#user-view").show().siblings(".info-block").hide(); if (!item) { $("#user-view .prop-value").text(""); return; } $("#name-view").text(item.name); $("#position-view").text(item.position); $("#salary-view").text(item.salary); $("#start-date-view").text(item.start_date); $("#office-view").text(item.office); $("#extn-view").text(item.extn); $("#role-view").text(item.role?"管理员":"操作员"); $("#status-view").text(item.status?"在线":"离线"); }, addItemInit : function() { $("#form-add")[0].reset(); $("#user-add").show().siblings(".info-block").hide(); }, editItemInit : function(item) { if (!item) { return; } $("#form-edit")[0].reset(); $("#title-edit").text(item.name); $("#name-edit").val(item.name); $("#position-edit").val(item.position); $("#salary-edit").val(item.salary); $("#start-date-edit").val(item.start_date); $("#office-edit").val(item.office); $("#extn-edit").val(item.extn); $("#role-edit").val(item.role); $("#user-edit").show().siblings(".info-block").hide(); }, addItemSubmit : function() { $.dialog.tips('保存当前添加用户'); }, editItemSubmit : function() { $.dialog.tips('保存当前编辑用户'); }, deleteItem : function(selectedItems) { var message; if (selectedItems&&selectedItems.length) { if (selectedItems.length == 1) { message = "确定要删除 '"+selectedItems[0].name+"' 吗?"; }else{ message = "确定要删除选中的"+selectedItems.length+"项记录吗?"; } $.dialog.confirmDanger(message, function(){ $.dialog.tips('执行删除操作'); }); }else{ $.dialog.tips('请先选中要操作的行'); } } };