项目使用 springmvc4.x  spring4.x  hibernate4.x easyui

为了便于开发,扩展了easyui 的 datagrid 功能,下面直接贴上扩展代码:


/**

* context 指定为 项目上下文* index 如果定义多组dataGrid,index指定为对应的参数:一组dataGrid包含(datagrid;toorbar;dialog;button)* templateUrl 指定为 此次访问操作对应的controller路径* crud 指定为  对应的toorbar包含什么操作;crud:增加修改删除; c:增加; u:修改; d:删除;*/
function DataGridEasyui(context, index, templateUrl, crud) {this.context = context;this.index = index;this.templateUrl = templateUrl;this.crud = crud;// 'c','r','u','d','all'this.saving =false; //处理中
};$.extend(DataGridEasyui.prototype, {/*** 初始化DataGridEasyui* crud按钮的响应操作  增加:add; 修改:edit; 删除:remove;*/init : function() {this.dataGrid = $("#dg-" + this.index);this.toolBar = $("#toolbar-" + this.index);this.dlg = $("#dlg-" + this.index);this.dlgBtn = $("#dlg-buttons-" + this.index);var fns = [ this.proxy(this.add, this,this.toolBar.find(".add")), this.proxy(this.edit, this,this.toolBar.find(".edit")),this.proxy(this.remove, this,this.toolBar.find(".remove")) ];//toolBar 响应函数if (this.crud == 'crud') {this.toolBar.find(".add").bind('click', fns[0]);this.toolBar.find(".edit").bind('click', fns[1]);this.toolBar.find(".remove").bind('click', fns[2]);} else if (this.crud == 'c') {this.toolBar.find(".add").bind('click', fns[0]);} else if (this.crud == 'u') {this.toolBar.find(".edit").bind('click', fns[1]);} else if (this.crud == 'd') {this.toolBar.find(".remove").bind('click', fns[2]);}//dlg-buttons 响应函数 if (this.crud == 'crud' || this.crud == 'c' || this.crud == 'u') {this.dlgBtn.find('.save').bind('click', this.proxy(this.save, this,this.dlgBtn.find('.save')));this.dlgBtn.find('.cancel').bind('click',this.proxy(this.cancel, this,this.dlgBtn.find('.cancel')));}},/*** 改变函数作用域* * @param fn* @param scope* @returns*/proxy : function(fn, scope,btn) {return function (){if(btn.is("[class*='disabled']")){  //禁用了不需要响应事件return ;}return fn.call(scope,arguments[0],btn);};},/*** 初始化dialog里面的form表单*/formInit : function() {},/*** toorbar的增加按钮*/add : function() {$('#dlg-' + this.index).dialog('open').dialog('setTitle', '新增');this.resetForm(this.dlg.find("form:eq(0)"));this.formInit.call(this);},/*** toorbar的修改按钮*/edit : function() {var rows = this.dataGrid.datagrid('getSelections');if (!rows || rows.length == 0) {$.messager.alert('提示', '请选择记录!');} else {if (rows.length == 1) {this.dlg.dialog('open').dialog('setTitle', '修改');this.dlg.find("form").form('clear').form('load', rows[0]);this.formLoadData(rows[0]);} else {$.messager.alert('提示', '请选择单行记录!');}}},/*** toorbar的删除按钮*/remove : function() {var this_ = this;var rows = $('#dg-' + this.index).datagrid('getSelections');if (!rows || rows.length > 0) {$.messager.confirm('确认', '你确定要删除所选的记录吗?', function(r) {if (r) {$.post(this_.getController("logicDelete"), {pids : $.map(rows, function(row) {return row.pid;}).join("::")}, function(result) {if (result.success) {this_.reload.call(this_);$.messager.show({ // show// tipstitle : '提示',msg : result.msg});} else {$.messager.alert('错误', result.msg);}}, 'json');}});} else {$.messager.alert('提示', '请选择记录!');}},/*** 重置dialog里面的form表单*/resetForm:function(form){var form =  $(form);form[0].reset();form.find("[type=hidden]").val("");},/*** form表单加载数据*/formLoadData:function (data){//处理隐藏域this.dlg.find("form:eq(0) input[type!=radio][type!=checkbox][name*='.']").each(function(){var name =  $(this)[0].name;var value = data[name];if(value){$(this).val(value);return ;}if(name.indexOf(".")!=-1){var names = name.split(".");value =data ;for(var i=0,l = names.length;i<l;i++){value = value[names[i]];if(!value){return ;}}$(this).val(value);}});//处理单选多选this.dlg.find("form:eq(0) input[type=radio]").each(function(){var name =  $(this)[0].name;var value  =data[name] ;if(value){if($(this).val() == value){$(this)[0].checked="checked";}return ;}if(name.indexOf(".")!=-1){var names = name.split(".");value = data ;for(var i=0,l = names.length;i<l;i++){try{value = value[names[i]];}catch(e){return ;}}}else{value = data[name];}if($(this).val() == value){$(this)[0].checked="checked";}});//处理单选多选this.dlg.find("form:eq(0) input[type=checkbox]").each(function(){var name =  $(this)[0].name;var value  =data[name] ;var this_ = this ;if(value){$(value).each(function (index ,item ){if($(this_).val() == item){$(this_)[0].checked="checked";}});return ;}if(name.indexOf(".")!=-1){var names = name.split(".");value = data ;for(var i=0,l = names.length - 1;i<l;i++){try{value = value[names[i]];}catch(e){return ;}}if($.isArray(value)){for(var i=0,l =value.length ;i <l;i++ ){if(value[i][names[names.length-1]]==$(this).val()){$(this)[0].checked="checked";return ;}}}}else{value = data[name];}if($(this).val() == value){$(this)[0].checked="checked";}});this.dlg.find("form:eq(0) select").each(function (){var name =  $(this)[0].name;var value  =data[name] ;if(value){$(this).val(value);return ;}if(name.indexOf(".")!=-1){var names = name.split(".");value = data ;for(var i=0,l = names.length;i<l;i++){value = value[names[i]];if(!value){return ;}}}else{value = data[name];}$(this).val(value);});},reload:function (){this.dataGrid.datagrid('reload'); // reload
    },/*** form 表单验证*/validateForm:function (form){return true;},/*** dlg-buttons 保存按钮*/save : function() {if(this.saving==true){  //避免重复提交return ;}var this_ = this;var form = this.dlg.find('form:eq(0)');var url;if (form[0].pid.value) {url = this.getController("doUpdate");} else {url = this.getController("doSave");}form.form('submit', {url : context_ + "/" + url,onSubmit : function() {var validate = $(this).form('validate')&& this_.validateForm(form);if(validate){this_.saving = true;}return validate;},success : function(result) {this_.saving = false ;var result ;try{result = jQuery.parseJSON(result)}catch(e){$.messager.alert('错误', "服务端出错!"); // show errorreturn ;}if (result.success) {this_.dlg.dialog('close');this_.reload.call(this_);$.messager.show({ // show tipstitle : '提示',msg : result.msg});} else {$.messager.alert('错误', result.msg); // show error
                }},onLoadError:function (){this_.saving = false}});},/*** dlg-buttons 取消按钮*/cancel : function() {this.dlg.dialog('close');},/*** 获取响应方法*/getController : function(method) {return this.templateUrl + "/" + method;}})

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%>
<%String context = request.getContextPath();pageContext.setAttribute("context_", context);
%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>Manager</title><link rel="stylesheet" type="text/css" href="<%=context %>/views/admin/jquery-easyui-1.4/themes/default/easyui.css"><link rel="stylesheet" type="text/css" href="<%=context %>/views/admin/jquery-easyui-1.4/themes/icon.css"><script type="text/javascript" src="<%=context %>/views/Scripts/jquery-1.4.1.js"></script><script type="text/javascript" src="<%=context %>/views/admin/jquery-easyui-1.4/jquery.min.js"></script><script type="text/javascript" src="<%=context %>/views/admin/jquery-easyui-1.4/jquery.easyui.min.js"></script><script type="text/javascript" src="<%=context %>/views/Scripts/easyui_dataGrid_extend.js"></script>
</head>
<body><table id="dg-1" class="easyui-datagrid" title="列表" style="width: 700px; height: 300px"data-options="toolbar:'#toolbar-1',checkOnSelect:true,selectOnCheck:true,fit:true,rownumbers:true,fitColumns:true,url:'${pageContext.request.contextPath}/${moduleName}/getData',method:'get',pagination:true,method:'get'"><thead><tr><th data-options="field:'ck',checkbox:true"></th><th data-options="field:'pid',width:80">Item ID</th><th data-options="field:'realName',width:80">realName</th></tr></thead></table><div id="toolbar-1"><a href="#" class="easyui-linkbutton add" iconCls="icon-add" plain="true">新增</a> <a href="#" class="easyui-linkbutton edit" iconCls="icon-edit" plain="true">修改</a> <a href="#" class="easyui-linkbutton remove" iconCls="icon-remove" plain="true">删除</a></div><div id="dlg-1" class="easyui-dialog" title="数据参数" style="width: 600px; height: 280px; padding: 10px 20px" closed="true" buttons="#dlg-buttons-1"><form method="post"><table cellpadding="5"><tr><td><input type="hidden" name="pid" /></td></tr><tr><td>用户名:</td><td><input class="easyui-textbox" type="text" name="realName" data-options="required:true"></input></td></tr><tr><td>密码:</td><td><input class="easyui-textbox" type="password" name="password" data-options="required:true"></input></td></tr><tr><td>角色:</td><td><table class="table-info-form"><c:forEach var="sysmanRole" items="${sysmanRoleList}"><tr ><td class="info-label">${sysmanRole.name }</td><td class="info-controller"> <input id="${sysmanRole.pid }" value ="${sysmanRole.pid }"  type ="checkbox" name ="roles.pid" />  </td></tr></c:forEach></table></td></tr></table></form></div><div id="dlg-buttons-1"><a href="#" class="easyui-linkbutton  save" iconCls="icon-ok">保存</a> <a href="#" class="easyui-linkbutton cancel" iconCls="icon-cancel">取消</a></div><script type="text/javascript">var context_ = '${context_}';var templateUrl = '${moduleName}';$( function() {var dg1 = new DataGridEasyui(context_, 1 , templateUrl, 'crud');dg1.init();});</script></body>
</html>

只需要在页面中 创建一个对象: 并调用init方法即可;

?
1
2
var dg1 = new DataGridEasyui(context_, 1 , templateUrl, 'crud');
dg1.init();

列表页对应的元素为  id="dg-1"的datagrid + id="toolbar-1"的toolbar

新增/修改对应的元素为 id="dlg-1"的dialog + id="dlg-buttons-1"的button

http://my.oschina.net/alexgaoyh/blog/317558?p={{currentPage+1}}

easyui datagrid plunges 扩展 插件相关推荐

  1. easyUI datagrid editor扩展dialog

    easyUI datagrid简单使用:着重两点1.editor对象的click事件:2.将dialog窗体内的值填写到当前正编辑的单元格内 1 <!DOCTYPE html> 2 < ...

  2. 给 Easyui Datagrid 扩展方法

    给 Easyui Datagrid 扩展方法 $.extend($.fn.datagrid.methods, {/*** 更新 非编辑列值* @param rowIndex : 行索引* @param ...

  3. 让jquery easyui datagrid列支持绑定嵌套对象

    嵌套对象是指返回的json数据,是对象的某个属性自带有属性.而我们恰恰又需要这个属性,默认情况下easyui的datagrid是不支持绑定嵌套对象的.比如:datagrid的field属性只能为fie ...

  4. 关于EasyUI DataGrid行编辑时嵌入时间控件

    本人做一个名为"安徽中控"项目时,为快速开发基础数据增删改模块,遂采用EasyUIDatagrid将所有增删改查的操作都集中于表格中,并且所有增删改查操作都集中于泛型对象,从而不必 ...

  5. EasyUI Datagrid 鼠标悬停显示单元格内容 复制代码

    EasyUI Datagrid 鼠标悬停显示单元格内容 第一种方式: 1.js 定义函数<script type="text/javascript"> //格式化单元格 ...

  6. 反射实体自动生成EasyUi DataGrid模板 第二版--附项目源码

    之前写过一篇文章,地址  http://www.cnblogs.com/Bond/p/3469798.html   大概说了下怎么通过反射来自动生成对应EasyUi datagrid的模板,然后贴了很 ...

  7. easyui 分页 + mybatis 分页插件 PageHelper 完成分页显示功能(SpringMVC + mybatis 框架)

    1.使用 easyUI datagrid 完成前台分页展示 <table id="dg" title="产品管理" style="width:7 ...

  8. 记一次easyui使用calendar日期插件实现日期多选

    easyui使用calendar日期插件实现日期多选 写在前面 需求 知己知彼 百战百胜 写完收工 写在前面 java开发,17年大专毕业.好不容易找个工作做了一年半左右结果行业不景气,我还没凉公司先 ...

  9. easyui datagrid 的数据加载

    这篇文章只谈jQuery easyui datagrid 的数据加载,因为这也是大家谈论最多的内容.其实easyui datagrid加载数据只有两种方式:一种是ajax加载目标url返回的json数 ...

最新文章

  1. 一个查看全部用户的磁盘空间使用情况的脚本
  2. [uart]stty命令使用
  3. 无线路由器打印机服务器设置密码,路由器怎么设置打印机服务器设置
  4. Facebook开源内存数据库Beringei,追求极致压缩率
  5. 提交自己开发的MR作业到YARN上运行的步骤
  6. 项目整合一级缓存和二级缓存
  7. 机器人离线编程画圆误差解决方案_工业机器人离线编程-误差分析和解决方案...
  8. linux 修改jmeter内存溢出,jmeter本机内存溢出如何修改?
  9. 帐户分类 密码强度
  10. 关于推荐的一个算法工程师访谈,有一些内容值得看看
  11. (转载)—— Logistic Regression(逻辑回归)模型实现二分类和多分类
  12. Python实现图像空域随机水印加入与提取
  13. 透析JMS、MQ看看应用与应用的底层如何完成通信
  14. axure怎么制作聊天页面
  15. javax.mail 发送163邮件
  16. I am Groot java题解
  17. redis全面讲解使用场景
  18. 分布式系统之-我的书单
  19. Java-枚举类enum及常用方法
  20. 蚂蚁金融加入以色列区块链隐私解决方案公司A轮融资

热门文章

  1. 在多线程中使用spring的bean
  2. loadrunner性能测试步骤
  3. SVN:“SVN”不是内部命令,解决方法
  4. 《认清C++语言》のrandom_shuffle()和transform()算法
  5. 利用JMeter进行压力测试(1)(转)
  6. 属性页中的ON_UPDATE_COMMAND_UI
  7. 线程的属性 —— 分离的状态(detached state)、栈地址(stack address)、栈大小(stack size)
  8. 事务和分布式事务解释
  9. Java中JFrame怎样控制闪烁_在JFrame Java中闪烁
  10. 日照油库系统推荐_战“疫”快报(3.21)| 油库三期工程罐基础混凝土浇筑全部完成...