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;
// }
// });
}

最新文章

  1. 仿喜马拉雅实现ListView添加头布局和脚布局
  2. jquery1.7.2的源码分析(一)
  3. 关于JAVA学习计划和感想
  4. August 16th 2016 Week 34th Tuesday
  5. 多线程JAVA篇(一)
  6. 用WPF做了几个小游戏
  7. 万向节死锁 gimbal lock
  8. 《ASP.NET1200例》统计网站访问量源代码
  9. java 凯撒大帝密码
  10. 国内IT技术博客对比
  11. Codeforces Round #197 (Div. 2) : E
  12. linux删除ORACLE【weber出品必属精品】
  13. SQL Server 性能优化之——重复索引
  14. HDU_5563Clarke and five-pointed star
  15. sleep、wait、notify、notifyAll的区别
  16. 韩天峰《大话PHP设计模式》听课笔记
  17. [NOIP提高组2011day1t2]选择客栈
  18. C++语言学习
  19. 667. Beautiful Arrangement II
  20. angular2.0---服务Service,使用服务进行数据处理

热门文章

  1. 本地jar在打包时打入到项目中去
  2. python组合数据类型和数据结构
  3. ExpandableListActivity
  4. JavaAgent学习小结
  5. 「NOIP2016」愤怒的小鸟
  6. java核心-多线程(6)-线程池-ThreadPoolExecutor
  7. C 常用库函数memset,编译器宏定义assert
  8. 一 CRM 注册功能实现
  9. LR、SVM、RF、GBDT、XGBoost和LightGbm比较
  10. 使用zabbix server监控tomcat实战案例