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编辑功能,当行获取焦点时编辑,失去焦点时保存的更多相关文章

  1. JAVAEE——BOS物流项目09:业务受理需求分析、创建表、实现自动分单、数据表格编辑功能使用方法和工作单快速录入

    1 学习计划 1.业务受理需求分析 n 业务通知单 n 工单 n 工作单 2.创建业务受理环节的数据表 n 业务通知单 n 工单 n 工作单 3.实现业务受理自动分单 n 在CRM服务端扩展方法根据手 ...

  2. ABBYY FineReader 15 PDF文档编辑功能详解

    ABBYY FineReader 15(Windows系统)OCR文字识别软件作为一款通用 PDF 工具,能轻松有效地对各种 PDF文档和纸质文档,进行数字化.检索.编辑.转换.包含.分享和合作,而其 ...

  3. Dynamics 365新功能:可编辑的网格(行内编辑)

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复238或者20161127可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  4. jquery-easyui 中表格的行编辑功能

    具体实现代码如下: <table id="tt"></table> $('#tt').datagrid({ title:'Editable DataGrid ...

  5. EasyUI DataGrid 实现单行/多行编辑功能

    要实现 EasyUI DataGrid 的可编辑很简单,在需要编辑的列添加 editor [编辑器]就可以了. 单行编辑 // 初始化数据列表 function initDatagrid() { $( ...

  6. jqgrid 单击行启用行编辑,切换行保存原编辑行

    为了加速表格互动编辑,我们往往希望通过选中行就触发了行编辑,完成行编辑后,再选中另一个行做编辑,同时上一个编辑行被自动保存,直至完成需要的编辑内容. 页面效果可能如下: 1)设置需要编辑的列 edit ...

  7. Visual Studio 在调试时启用编辑功能

    Visual Studio边调试边修改 如果你在调试一个web应用程序的时候,想进行编辑,可以有如下两种方法:    方法一:在web项目的属性页里的web标签页,选中"启用编辑并继续&qu ...

  8. 事务代码SE16N查看数表时可以使用命令激活编辑功能

    &sap_edit命令可以激活SE16N编辑功能,维护数据表,但是是除了主键不能维护外都可以修改

  9. easyui datagrid的行编辑器editor 如何实现新增时可修改,编辑时,不可修改

    项目出现一个需求,要求用户界面的用户名,新增时,可自由输入,编辑时,不可修改 html页面 <table id="gridlist" data-bind="data ...

随机推荐

  1. redis之List类型常用方法总结

    redis之List类型常用方法总结 格式: 存---LPUSH key value [value ...] 取--LRANGE key start stop lpush key value [val ...

  2. importlib 与__import__的区别

    importlib 与__import__的区别 importlib import importlib name = "lib.test" # lib.test指的是lib路劲下的 ...

  3. 关于AJAX跨域和原生AJAX CORS跨域解决

    项目需求要在别人的域名下调用自己的接口,因为浏览器的同源策略是不允许不同域名下之间的信息交换,那就意味着要跨域处理 参考博客 :https://blog.csdn.net/Ulricalin/arti ...

  4. 前端面试题CSS一(题目来源网络)

    一.什么是html5语义化? 使用合理,正确的html标签格式化文档. 二.CSS样式优先级? 就近原则,行内>内联>外联 三 什么是盒模型? 主要分为两种,w3c标准盒模型,IE标准模型 ...

  5. mutiset的简单介绍转载

    原文链接:https://blog.csdn.net/sodacoco/article/details/84798621        c++语言中,multiset是<set>库中一个非 ...

  6. P1481 魔族密码(LIS变形)

    题目描述(题目链接:https://www.luogu.org/problem/P1481) 风之子刚走进他的考场,就…… 花花:当当当当~~偶是魅力女皇——花花!!^^(华丽出场,礼炮,鲜花) 风之 ...

  7. 关于Burp Suite Intruder 的四种攻击方式

    以下面这一段参数为例,被§§包围的部分为需要破解的部分: user=§ss§&password=§zxcv§&imageField.x=17&imageField.y=1 (1 ...

  8. 使用Hibernate+MySql+native SQL的BUG,以及解决办法

      本来是mssql+hibernate+native SQL 应用的很和谐 但是到了把mssql换成mysql,就出了错(同样的数据结构和数据). 查询方法是: String sql = " ...

  9. docker-lnmp 多容器部署 Laravel 方案分享(转)

    docker lnmp 多容器部署方案.完全基于 docker 官方镜像,遵循最佳实践,一容器一进程. github 项目地址 https://github.com/March7/docker-lnm ...

  10. docker中mysql数据库

    在docker中安装mysql数据库,直接上代码,pull 并run 补充20190809=============== 如果要挂载数据库实现数据持久化到本地的时候,会出现权限问题,这个原因是: 在执 ...