easyui datagrid plunges 扩展 插件

 

 项目使用 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}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290521.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件项目组织管理(八)项目质量管理

文章目录软件质量的重要性对质量的认识传统的认识新的认识质量与等级什么是质量什么是质量管理什么是软件质量软件项目管理的目标质量管理的过程质量管理发展的四个阶段戴明改进循环&#xff08;PDCA循环&#xff09;项目质量计划编制方法——质量标杆法影响项目质量的因素(5M1…

Ctrl与Caps Lock键的交换

转自&#xff1a;http://www.xiaozhou.net/exchange_ctrl_and_capslock_key-2012-07-20.html 感谢博主。 要换就把所有电脑的键位都换过来&#xff0c;不然反而容易出错。 转载记录一下&#xff0c;防止以后重装系统转载于:https://www.cnblogs.com/bugtags/p/4775886.html

最近的状态

现在都25岁了&#xff0c;马上要26岁了&#xff0c;最近人特别浮躁&#xff0c;什么都不想学&#xff0c;什么都不想做&#xff0c;感觉整个人都不在状态&#xff0c;这样下去肯定会被淘汰&#xff0c;调整好心态&#xff0c;调整好状态&#xff0c;冷静下来&#xff0c;保持危…

Avalonia跨平台入门第十九篇之语音播放

在前面分享的几篇中咱已经玩耍了Popup、ListBox多选、Grid动态分、RadioButton模板、控件的拖放效果、控件的置顶和置底、控件的锁定、自定义Window样式、动画效果、Expander控件、ListBox折叠列表、聊天窗口、ListBox图片消息、窗口抖动、语音发送;今天趁着大周末的时间接着去…

软件项目组织管理(九)项目人力资源管理

文章目录什么是人力资源人力资源的特征什么是项目人力资源管理管理员工的关键所在马斯洛的需求层次理论赫兹伯格的双因素理论权力理论提高项目工作有效性的7种习惯人力资源管理过程人力资源管理的工具方法责任分配矩阵资源负荷资源平衡团队发展的5个阶段&#xff08;塔克曼模型…

javax.jdo.option.ConnectionURL配置的问题

2019独角兽企业重金招聘Python工程师标准>>> Hive安装过程中出现 The reference to entity "createDatabaseIfNotExist" must end with the ; delimiter.问题&#xff0c;具体如下所示&#xff1a; [Fatal Error] hive-site.xml:132:95: The reference to…

设计模式21:State 状态模式(行为型模式)

State 状态模式&#xff08;行为型模式&#xff09; 动机&#xff08;Motivation&#xff09; 在软件构建过程中&#xff0c;某些对象的状态如果改变&#xff0c;其行为也会随之而发生变化&#xff0c;比如文档处于只读状态&#xff0c;其支持的行为和读写状态的行为就可能完全…

java和C++之单例类双重检查加锁

1、Java public class Singleton {private volatile static Singleton instance;public static Singleton getInstance () {if (instance null) {synchronized (Singleton.class) {if (instance null) {instance new Singleton();}}}return instance;} } 2、C class Singlet…

基于Qt的光盘刻录开发

.转载于:https://blog.51cto.com/weiyuqingcheng/1921369

在 k8s 以外的分布式环境中使用 Dapr

在Dapr 文档和实践案例中多是推荐采用k8s, 其实我目前也是在k8s 上操作的&#xff0c;有公有云TKE&#xff0c;AKS&#xff0c;还有私有云的Rancher &#xff0c;它并没有传闻中的那么难&#xff0c;而且我认为它非常容易上手。不过&#xff0c;我还是有很多人不愿意使用k8s 。…

软件项目组织管理(十)项目沟通管理

软件项目成功的主要因素 用户参与主管层的支持需求的清晰表述 沟通管理的目标 及时而适当地创建、收集、发送、储存和处理项目的信息。 沟通管理的过程 沟通规划信息发布绩效报告利益相关者管理 沟通渠道数目计算公式 Sn*(n-1)/2 S&#xff1a;沟通渠道数量 n&#xff1…

ubuntu 14.04 安装Java JDK

Linux 下安装配置 JDK7 自从从Oracle收购Sun近三年来&#xff0c;已经有很多变化。早在8月&#xff0c;甲骨文将“Operating System Distributor License for Java”许可证终结&#xff0c;这意味着第三方将不可以依据这一许可分发他们的软件包。  因此Ubuntu Linux已经开始禁…

shell 获取值 默认值

default0PAGE_PVcat a.log|awk {print $1}PAGE_PV${PAGE_PV:-${defaut}}转载于:https://blog.51cto.com/lihongyi/1567518

javascript原型链中 this 的指向

为了弄清楚Javascript原型链中的this指向问题&#xff0c;我写了个代码来测试&#xff1a; var d {d: 40};var a {x: 10,calculate: function (z) {return this.x this.y z this.d},__proto__:d};var b {y: 20,__proto__: a};var c {y: 30,__proto__: a};运行如下的代码…

C和指针之删除字符串第一次出现的子串

1、问题 函数首先先判断substr是否出现在str中,如果它并没有出现,返回0,如果出现,函数应该把str *中位于该字符串后面的所有字符复制到该子串的位置,从而删除这个子串,然后函数返回1,如果 *多次出现str中,函数只删除第1次出现的子串,函数的第2个参数绝不会被修改。 2、…

C# 中是否支持 Like 和 ln 条件的参数化查询 ?

咨询区 Tom Ritter.NET 中的参数化查询我一直都像下面这样写。SqlCommand comm new SqlCommand("SELECT * FROM Products WHERE Category_ID categoryid ", conn); comm.Parameters.Add("categoryid", SqlDbType.Int); comm.Parameters["categor…

软件项目组织管理(十一)项目风险管理、项目采购管理

什么是风险 可能给项目的成功带来威胁或损害的可能性。 风险管理的目标 对项目目标而言的正面事件的概率和影响结果最大化&#xff0c;把负面事件的概率和影响最小化。 风险承受度 从潜在回报中得到满足或快乐的程度。 应对风险的基本措施 规避接收减轻转移 什么是项目…

Java探索之旅(6)——对象和类

1.知识要点 假设&#xff1a; public ClassName{int data;String name;ClassName(){data1;}public static int getdata(){return data;}}</span> ❶含main()的为主类。多个类放在一个文件中&#xff0c;只能有一个主类。 ❷类可以不定任何构造方法(函数)&#xff0c;系统…

BZOJ3924 : [Zjoi2015]幻想乡战略游戏

对于一个点&#xff0c;要求出它到所有点的带权距离和&#xff0c;只需记录下树分治的结构然后查询即可。 修改$O(\log n)$&#xff0c;查询$O(\log n)$。 到所有点带权距离和最小的点显然是这棵树的带权重心。 以1号点为根&#xff0c;考虑一条从父亲x到孩子y的边&#xff1a;…

Lucene5.5.4入门以及基于Lucene实现博客搜索功能

前言 一直以来个人博客的搜索功能很蹩脚&#xff0c;只是自己简单用数据库的like %keyword%来实现的&#xff0c;所以导致经常搜不到想要找的内容&#xff0c;而且高亮显示、摘要截取等也不好实现&#xff0c;所以决定采用Lucene改写博客的搜索功能。先来看一下最终效果&#x…