JqGrid之单元格编辑后保存-yellowcong
来源:互联网 发布:手机淘宝自动挂机赚钱 编辑:程序博客网 时间:2024/05/15 12:02
在JqGrid中,提供了关于单元格编辑的函数,但是有些官网是没有讲到的,这里总结一下
1、afterSaveCell:function(rowid,name,val,iRow,iCol)
,
2、beforeEditCell:function(rowid,cellname,value,iRow,iCol)
beforeSaveCell:function(rowid,cellname,value,iRow,iCol)
3、$("#grid").jqGrid("saveCell",iRow,iCol);
4、$("#grid").jqGrid("restoreCell",rowid,iCol);
5、$("#grid").jqGrid('setCell', rowid, iCol, '', 'not-editable-cell');
需要注意一点,rowid是字符串,不是int类型数据,这个坑,本宝宝表示以踩
但是在API中,并没有详细的说明,这写函数在Grid的单元格编辑中,是比较的重要的,可以控制输入的数据类容和格式
beforeEditCell事件
在编辑前做处理
beforeEditCell:function(rowid, //行id cellname, //单元格名称 value,//单元格值 ,在编辑前的默认值 iRow, //行的index iCol)//列的index
beforeSaveCell 事件
在保存之前处理,用来判断逻辑,做对话框等操作
beforeSaveCell :function(rowid, //行id cellname, //单元格名称 value,//单元格值 ,在编辑前的默认值 iRow, //行的index iCol)//列的index
afterSaveCell事件
我们可以在afterSaveCell事件中,做判断,处理需要处理和操作的数据,比如判断数据的格式,长度等问题
格式化数据
afterSaveCell:function(rowid,//行id name,//单元格名称 val,//单元格值 ,编辑后的值 iRow,//行的index iCol)//列的index
saveCell 函数
当我们的数据更改后,在grid的元数据还是没有变更的,需要通过这个方法,来修改元数据,这样可以通过getRowData和getLocalRow两个方法获取到数据了
//用于保存我们编辑后的单元格的数据$("#grid").jqGrid("saveCell", iRow, //行 iCol);//列
restoreCell函数
恢复Cell,当更改的数据不是自己想要的,就需要将数据做回滚操作
//恢复cell$("#grid").jqGrid("restoreCell", rowid,//行index iCol)//列index
setCell函数
在需求中,我们也可以自己设定单元格里面的数据,这样就不需要恢复数据了
#设定单元格数据$("#gridRakuData").jqGrid('setCell', rowid,//行 iCol,//列index 'test'); //设定的值//设定表格可编辑的状态 1、删除not-editable-cell 样式,2、设定edit-cell 样式$('#gridRakuData #'+rowid+' td[aria-describedby="gridRakuData_kngaku'+strBiddingNo+'"]').removeClass('not-editable-cell');$("#gridRakuData").jqGrid('setCell', rowid, iCol, '', 'edit-cell');//设定表格不可以编辑$("#gridRakuData").jqGrid('setCell', rowid, iCol, '', 'not-editable-cell');
例子
这个例子中,控制的是单元格可编辑,不能入力小数,入力了提示对话框的操作
$("#gbox_gridRakuData").remove(); $("#wfgm1070RakuData").append("<table id='gridRakuData'></table>"); $('#gridRakuData').jqGrid({ formatter : { integer : {thousandsSeparator: ",", defaultValue: ""}, }, data: dataList, datatype:"local", multiboxonly:true, cellEdit:girdEditDistable, //CELL EDIT ABLE cellsubmit:'clientArray', colNames:colNames, colModel:colModel, width:gridWidth, height:gridHeight, scrollOffset:0, rowNum:dataList.length, regional:'ja', beforeSelectRow: function(rowid, event){ }, onSelectRow: function(id) { }, onCellSelect:function(rowid,iCol,cellcontent,event){ //札回数 var strBiddingNo = $("#kaisu").val().substring($("#kaisu").val().length-1) ; if(strBiddingNo != undefined){ if((iCol-2) == strBiddingNo ||iCol == 14 ){ $('#gridRakuData #'+rowid+' td[aria-describedby="gridRakuData_kngaku'+strBiddingNo+'"]').removeClass('not-editable-cell'); $("#gridRakuData").jqGrid('setCell', rowid, iCol, '', 'edit-cell'); }else{ $("#gridRakuData").jqGrid('setCell', rowid, iCol, '', 'not-editable-cell'); } } //CLEAR STYLE var rowIds = $("#gridRakuData").jqGrid('getDataIDs'); for(var row =0;row<rowIds.length;row++){ var rowId = rowIds[row]; for(var col=C_MIN_BIDDING;col<=C_MAX_BIDDING;col++){ $('#gridRakuData #'+rowId+' td[aria-describedby="gridRakuData_kngaku'+col+'"]').removeClass("ui-state-highlight"); } } },beforeEditCell:function(rowid,cellname,value,iRow,iCol){ var kinGakuIndex = iCol-2; },afterSaveCell:function(rowid,name,val,iRow,iCol){ var kinGakuIndex = iCol-2; var numberRegx = /^[0-9]+$/; if (numberRegx.test(val)) { if(kinGakuIndex>=C_MIN_BIDDING && kinGakuIndex<=C_MAX_BIDDING){ if(val.length >12){ sofia.ui.showDialogJsMsg("E", "文字数を超過しています。"); $("#gridRakuData").jqGrid("restoreCell",rowid,iCol); return false; } } } if(name == "kiji" && val.length >100){ sofia.ui.showDialogJsMsg("E", "文字数を超過しています。"); $("#gridRakuData").jqGrid("restoreCell",rowid,iCol); return false; } //12.22 var numberSamllRegx = /^[0-9]+\.[0-9]*$/; if(numberSamllRegx.test(val)){ $("#gridRakuData").jqGrid("restoreCell",rowid,iCol); return false; } },loadComplete(xhr){ //GRID のcheckbox設定 initGridCheckBox(); } });//设定checkbox只可以点击一个,grid的checkbox像radio使用function initGridCheckBox(){ $("#gridRakuData input[type='checkbox']").click(function(e){ var $obj =$(this); if($obj.is(':checked')){ $("#gridRakuData input[type='checkbox']").each(function(){ $(this).attr("checked",false); }); $obj.prop("checked","checked"); } });}
- JqGrid之单元格编辑后保存-yellowcong
- JqGrid之指定单元格可编辑-yellowcong
- Jqgrid之bug,设定单元格数据为空-yellowcong
- jqGrid单元格编辑后切换焦点直接提交
- jqgrid之冻结列(单元格编辑模式下)
- jqgrid设置单元格可编辑
- jqgrid行内编辑,保存
- 实现jqGrid单元格编辑完后点击提交按钮一次性提交
- Jqgrid插件实现单元格编辑,以及弹出选择数据后赋值。
- jqGrid JS之TreeGrid (树形表格)- yellowcong
- JqGrid之Checkbox选中不生效-yellowcong
- Jqgrid之异步加载数据-yellowcong
- JqGrid之动态改变下拉框-yellowcong
- jqGrid单元格编辑配置,事件及方法
- jqGrid单元格编辑配置,事件及方法
- jqgrid 动态设置单元格不可编辑
- jqGrid使某一个单元格去掉编辑状态
- jqgrid之编辑custom
- Centos7.2在虚拟机Vmware中增加硬盘的方法
- Jquery利用is(“:checked”)判断单选框是不是被选中
- kafka集群搭建
- 360 H5 事件冒泡
- 几个比较好的英语编程学习网站
- JqGrid之单元格编辑后保存-yellowcong
- (2)Shiro学习过程中我用到的类和API
- [Android基础]Intent用法的二三事(下)——Data、Type、Extra、Flag的属性详解
- 第四周项目1 —建立单链表
- AI Programmer: 用基因算法生成程序 简介
- 表格展示与查询
- 文件清除缓存
- JS控制全屏
- html 英文不自动换行问题