JQgrid实现全表单元格编辑

Posted tangzeqi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JQgrid实现全表单元格编辑相关的知识,希望对你有一定的参考价值。

 1 jQuery("#baseWageDataValueGrid").jqGrid(‘setGridParam‘,{‘cellEdit‘:true});
 2                         
 3                              //修改所有td tabindex
 4                              var tdList = $(‘#baseWageDataValueGrid‘).find(‘td‘);
 5                              if(!!tdList && tdList.length>0){
 6                                  $.each(tdList,function(i,o) {
 7                                      $(o).attr(‘tabindex‘,‘1‘);
 8                                  });
 9                              }
10                              //依次发起单元格编辑,并保存
11                              var list = jQuery("#baseWageDataValueGrid").getDataIDs();
12                              var putList = [];
13                              if(!!list && list.length>0) {
14                                  for(var i=list.length;;i-- ) {
15                                      var td = $(‘#baseWageDataValueGrid‘).find("td[tabindex=‘0‘]");
16                                      if(td.length>0) {
17                                          var put = {};
18                                          put.td = td;
19                                          put.input = td.get(0).children[0];
20                                          putList.push(put);
21                                      } 
22                                      if(i>0) {
23                                          jQuery("#baseWageDataValueGrid").jqGrid(‘editCell‘,i,7, true);
24                                      } else {
25                                          break;
26                                      }
27                                  }
28                              }
29                              //还原加载后被删除 元素,提交元素事件
30                              if(putList.length>0) {
31                                  $.each(putList,function(i,put) {
32                                      $(put.td).empty();
33                                      $(put.td.get(0).parentNode).addClass(‘edited‘);
34                                      $(put.td.get(0).parentNode).addClass(‘selected-row‘);
35                                      $(put.td.get(0).parentNode).addClass(‘active‘);
36                                      $(put.td).attr(‘tabindex‘,‘0‘);
37                                      $(put.td).addClass(‘edit-cell‘);
38                                      $(put.td).addClass(‘success‘);
39                                      $(put.td).append(put.input);
40 //    给单元格注册自定义事件
41                                      $(put.input).on(‘change‘,function(o,n) {
42                                          var _this = this;
43                                          var m = this.value;
44                                          var rowid= this.attributes[‘rowid‘].value;
45                                          $.ajax({
46                                              url: __ctx+‘/platform/performance/baseWageDataValue/updateSave.htm‘,
47                                              data:{id:rowid,value:m,itemId:$(‘#itemId‘).val()},
48                                              success:function (data) {
49                                                  // 根据返回的数据版本ID判断是否重新加载数据
50                                                  baseWageDataValue.saveResponse(data);
51 //                                                //使还原的 元素与事件只能使用一次
52 //                                                $(_this.parentNode).removeClass(‘success‘);
53 //                                                $(_this.parentNode).removeClass(‘edit-cell‘);
54 //                                                $(_this.parentNode.parentNode).removeClass(‘edited‘);
55 //                                                $(_this.parentNode.parentNode).removeClass(‘selected-row‘);
56 //                                                $(_this.parentNode.parentNode).removeClass(‘active‘);
57 //                                                $(_this.parentNode).empty();
58 //                                                //修改显示值
59 //                                                jQuery("#baseWageDataValueGrid").jqGrid(‘setCell‘,rowid,7,m,false,false, true); 
60                                              },
61                                              error:function () {
62                                                  layer.msg("网络错误!");
63                                              }
64                                          })
65                                      });
66                                  });
67                              }
68                              //屏蔽原有编辑事件
69                          jQuery("#baseWageDataValueGrid").jqGrid(‘setGridParam‘,{‘cellEdit‘:false});

技术图片将JS代码加入JQgrid 的gridComplete(加载完成后事件)中后,实现效果如下:

 技术图片

以上是关于JQgrid实现全表单元格编辑的主要内容,如果未能解决你的问题,请参考以下文章

Jqgrid中动态生成colModel实现双击编辑整列时,鼠标定位在当前双击指定单元格

jqGrid 单元格编辑 - 双击编辑?

如何关闭单元格编辑器?

jQgrid单元格编辑最后一个无法自动保存解决办法

单击jqgrid网格时如何仅突出显示单元格

jqGrid单元格编辑配置,事件及方法