自定义jqGrid编辑功能,当行获取焦点时编辑,失去焦点时保存
http://www.360doc.com/content/17/0719/15/9200790_672577533.shtml
/*******************************************
* Description:
* 自定义jqGrid编辑功能,当行获取焦点时编辑,失去焦点时保存
*
* 调用方法:
* 在jGrid的(opts参数中)"editurl"属性的上面或下面添加属性 customEdit: true
*
* Author:
*******************************************/
var JqGridCustomEdit = {
_cacheName: "editGrid_PrevRowKey",
_saveBtnName: "editGrid_BtnSave", init: function (gridID) {
//this.createSaveButton(gridID);
this.createRowBlurEvent(gridID);
}, createSaveButton: function (gridID) {
var self = this;
var saveBtnID = gridID + "_" + self._saveBtnName;
var htmlButton = '<input type="button" id="' + saveBtnID + '" onClick="JqGridCustomEdit._saveData(\'' + gridID + '\')" style="display:none" value="saveRow" />';
$("body").append(htmlButton);
}, createRowBlurEvent: function (gridID) {
var self = this;
$("body").bind("click", function (event) {
self.onRowBlur(gridID, event);
});
}, onSave: function (gridID) {
var saveBtnID = gridID + "_" + this._saveBtnName;
$("#" + saveBtnID).click();
},
showEditCss: function (gridID, show) {
if (show) {
$("#" + gridID + "_ilsave").removeClass('ui-state-disabled');
$("#" + gridID + "_ilcancel").removeClass('ui-state-disabled');
$("#" + gridID + "_iladd").addClass('ui-state-disabled');
$("#" + gridID + "_iledit").addClass('ui-state-disabled');
}
else {
$("#" + gridID + "_ilsave").addClass('ui-state-disabled');
$("#" + gridID + "_ilcancel").addClass('ui-state-disabled');
$("#" + gridID + "_iladd").removeClass('ui-state-disabled');
$("#" + gridID + "_iledit").removeClass('ui-state-disabled');
}
},
onSelectRow: function (gridID, rowid) {
var self = this;
var rowKeyCacheID = gridID + "_" + self._cacheName;
var prevRowKey = $("body").data(rowKeyCacheID); $("body").data(rowKeyCacheID, rowid); JqGridFormatCell.beforEditRow(gridID, rowid);
$("#" + gridID).jqGrid("editRow", rowid, $("#" + gridID).get().p.editParams);
self.showEditCss(gridID, true);
}, onRowBlur: function (gridID, event) {
var haveEditRow = false;
$("#" + gridID).find("tr").each(function () {
if ($(this).attr("editable") == "") {
haveEditRow = true;
return false;
}
}); if (haveEditRow) {
var self = this;
var rowid = $("#" + gridID).jqGrid('getGridParam', 'selrow');
if (rowid == null) { return; } var eventObj = ((event.srcElement) ? event.srcElement : event.target);
var prev = false;
var next = false;
var pClass = $(eventObj).parent().attr("class");
var nClass = $(eventObj).parent().attr("class");
if (pClass) prev = pClass.indexOf("ui-datepicker-prev") != -;
if (nClass) next = nClass.indexOf("ui-datepicker-next") != -;
if ($("#ui-datepicker-div").find(eventObj).length > || prev || next) { return; } if (eventObj.tagName == "TD") {
var currgriddom = $("#" + gridID).find(eventObj).length;
if (currgriddom == ) {
self._saveData(gridID);
}
// var $eventTR = $(eventObj).parent();
// if ($eventTR.attr("id") != rowid) {
// self._saveData(gridID);
// }
}
else if (eventObj.tagName == "INPUT" || eventObj.tagName == "SELECT" || eventObj.tagName == "OPTION") {
var rid = $(eventObj).attr("id");
if (rid && rid.indexOf(rowid) == -) {
self._saveData(gridID);
}
}
else {
self._saveData(gridID);
}
}
}, _saveData: function (gridID) {
var self = this;
var rowKeyCacheID = gridID + "_" + self._cacheName; var rowid = $("body").data(rowKeyCacheID);
if (rowid == null) {
return false;
}
if (rowid == "new_row" && $("#" + rowid).attr("class").indexOf("jqgrid-new-row") != -) {
$("#" + gridID).jqGrid('saveRow', rowid, $("#" + gridID).get().p.addParams);
} else {
$("#" + gridID).jqGrid('saveRow', rowid, $("#" + gridID).get().p.editParams);
}
self.showEditCss(gridID, false);
// $("#" + gridID).jqGrid('saveRow', rowid, function (result) {
// self.showEditCss(gridID, false);
// if (result.responseText == "") {
// //$.jAlert("Update is missing!");
// return false;
// } else {
// $("body").removeData(rowKeyCacheID);
// //$.jAlert("Update is successful");
// return true;
// }
// });
}
自定义jqGrid编辑功能,当行获取焦点时编辑,失去焦点时保存的更多相关文章
- JAVAEE——BOS物流项目09:业务受理需求分析、创建表、实现自动分单、数据表格编辑功能使用方法和工作单快速录入
1 学习计划 1.业务受理需求分析 n 业务通知单 n 工单 n 工作单 2.创建业务受理环节的数据表 n 业务通知单 n 工单 n 工作单 3.实现业务受理自动分单 n 在CRM服务端扩展方法根据手 ...
- ABBYY FineReader 15 PDF文档编辑功能详解
ABBYY FineReader 15(Windows系统)OCR文字识别软件作为一款通用 PDF 工具,能轻松有效地对各种 PDF文档和纸质文档,进行数字化.检索.编辑.转换.包含.分享和合作,而其 ...
- Dynamics 365新功能:可编辑的网格(行内编辑)
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复238或者20161127可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- jquery-easyui 中表格的行编辑功能
具体实现代码如下: <table id="tt"></table> $('#tt').datagrid({ title:'Editable DataGrid ...
- EasyUI DataGrid 实现单行/多行编辑功能
要实现 EasyUI DataGrid 的可编辑很简单,在需要编辑的列添加 editor [编辑器]就可以了. 单行编辑 // 初始化数据列表 function initDatagrid() { $( ...
- jqgrid 单击行启用行编辑,切换行保存原编辑行
为了加速表格互动编辑,我们往往希望通过选中行就触发了行编辑,完成行编辑后,再选中另一个行做编辑,同时上一个编辑行被自动保存,直至完成需要的编辑内容. 页面效果可能如下: 1)设置需要编辑的列 edit ...
- Visual Studio 在调试时启用编辑功能
Visual Studio边调试边修改 如果你在调试一个web应用程序的时候,想进行编辑,可以有如下两种方法: 方法一:在web项目的属性页里的web标签页,选中"启用编辑并继续&qu ...
- 事务代码SE16N查看数表时可以使用命令激活编辑功能
&sap_edit命令可以激活SE16N编辑功能,维护数据表,但是是除了主键不能维护外都可以修改
- easyui datagrid的行编辑器editor 如何实现新增时可修改,编辑时,不可修改
项目出现一个需求,要求用户界面的用户名,新增时,可自由输入,编辑时,不可修改 html页面 <table id="gridlist" data-bind="data ...
随机推荐
- NSIndexPath等结构体的比较
1.NSIndexPath的比较方式,需要将结构体内部的属性一一对比.比如, if ((indexPath.section == self.selectIndexPath.section) & ...
- Android LowMemoryKiller原理分析
copy from : http://gityuan.com/2016/09/17/android-lowmemorykiller/ frameworks/base/services/core/jav ...
- pycharm安装报错Non-zero exit co?
pycharm安装第三方库时报错Non-zero exit co? 原因:版本找不到 解决思路: 1.用pip install pandas报错,尝试用python -m pip install -- ...
- redis(笔记)
./redis-cli -a root 带密码链接 root 为我的密码del key 删除key keys * 查询 所有keyexist key key是否存在 成功返回1 失败Wie0 set ...
- 应用间的API访问如何认证?
任何一个一个应用要访问另一个应用的API,需要首先到开放平台获取访问accesskey, 然后访问目标应用,目标应用中先检查来源访问token是否已存在缓存中,不存在需要去开放平台校验accesske ...
- SpringMVC架构&组件&执行流程
SpringMVC架构: 组件: DIspatcherServlet:前端控制器.相当于mvc模式的c,是整个流程控制的中心,负责调用其他组件处理用户的请求,降低了组件之间的耦合性. HandlerM ...
- linux 查看Apache Tomcat日志访问IP前10
访问日志名:localhost_access_log.2019-01-29.txt 日志格式示例 /Nov/::: +] /Nov/::: +] /Nov/::: +] /Nov/::: +] /No ...
- 【Android】在程序中使用触力反馈
触力反馈又名:hapticFeedbackEnabled 一般有两种实现方式 第一种是在XML布局文件里面设置 android:hapticFeedbackEnabled="true&quo ...
- android数据的四种存储方式之一——SharedPreference
除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data ...
- 图解Mybatis框架原理及使用
1.前言 努力学习完ssm框架之后,终于也成功的把三大框架的使用以及配置文件细节忘得一干二净.为了努力捡起来以及方便今后的复习,决定写一篇博客记录一下. 本博客的所有分析都是在持久层接口以及接口中的方 ...