标签:
单元格编辑提供给用户修改一行中的单个单元格内容的功能,开发者可以通过ajax或者单元格编辑事件对修改的数据进行处理。
通过下面的行为,单元格编辑支持键盘导航和执行单元格编辑操作
要使用单元格编辑模块,你需要在下载页面勾选Cell editing 和 Common这2个功能,然后再点击 Download 下载按钮下载jqGrid。下载地址:http://www.trirand.com/blog/?page_id=6
要看元代可以从src目录中找到 grid.celledit.js 这个文件
属于单元格编辑的属性,事件和方法是jqGrid选项配置中的一个子集。
单元格编辑的具体属性需要在jqGrid方法中配置。
属性名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
cellEdit | boolean | 是否启用单元格编辑。设置为true,onSelectRow事件不能使用,鼠标悬停也会被禁用(鼠标悬停在行上) | false |
cellsubmit | string | 配置单元格内容保存位置,可用值‘remote‘ 或者‘clientArray‘ 1)设置为remote,单元格内容改变后将启动ajax请求cellurl配置的地址保存到服务器上。此数据行的id和修改的内容被附加到url上。配置了mtype为post提交,那么将会post提交键值对内容。例如,保存一个名为mycell的单元格 {id: rowid, mycell: cellvalue} 将会作为附加数据附加到url上。 2)设置为clientArray,不会发送ajax请求,修改后内容可以条用getChangedCells方法或者通过事件获取到 |
remote |
cellurl | string | 保存数据的url地址。cellsubmit设置为remote时一定要配置url地址。 | null |
ajaxCellOptions | object | 配置保存数据的ajax请求的全局设置。这个配置可以重写所有当前保存数据的ajax请求设置,包括complete事件 | empty object |
cellsubmit设置为remote,可以使用下面的代码
JavaScript
代码cellsubmit设置为clientArray
JavaScript
代码单元格编辑的事件需要在jqGrid方法中配置
下面列出的大部分事件使用下面定义的参数,备注:iRow和iCol经测试值的开始位置不一样。
事件名称 | 参数 | 描述 |
---|---|---|
afterEditCell | rowid, cellname, value, iRow, iCol | 单元格被编辑后出发,例如对应的编辑控件元素被添加DOM后 |
afterRestoreCell | rowid, value, iRow, iCol | 调用restoreCell方法或者按ESC键取消编辑后出发 |
afterSaveCell | rowid, cellname, value, iRow, iCol | 单元格成功保存后出发,这是更改其他内容的理想的地方 |
afterSubmitCell | serverresponse, rowid, cellname, value, iRow, iCol |
数据提交到服务器并返回信息后触发。此方法需要返回[success(boolean),message]类型的数据。 |
beforeEditCell | rowid, cellname, value, iRow, iCol | 在编辑单元格前触发 |
beforeSaveCell | rowid, cellname, value, iRow, iCol |
在验证输入数据(如果存在)之前触发。事件可以返回新的内容替换之前的内容。
|
beforeSubmitCell | rowid, cellname, value, iRow, iCol |
发送单元格内容到服务器之前触发(cellsubmit配置为remote是有效)。事件可以返回一个新JSON数据一起提交到服务器 |
errorCell | serverresponse, status | 保存数据后动态页出错时触发。 1)servereresponse为ajax对象,可以通过serverresponse.responseText获得服务器返回的信息 2)status为错误号 |
formatCell | rowid, cellname, value, iRow, iCol | 此事件可以在单元格被编辑前格式化单元格内容,返回格式化后的值。 |
onSelectCell | rowid, celname, value, iRow, iCol | 在单元格切换为文本模式后触发 |
serializeCellData | postdata | 如果设置了这个事件,在保存单元格时将序列化传给ajax请求的数据。这个方法需要返回序列化后的内容。当自定义数据需要发送到服务器时可以使用此事件。例如,JSON格式的字符串,XML格式的字符串等等。此事件返回的数据将会提交到服务器。 |
取决于cellSubmit配置的值为 ‘remote‘ 或者 ‘clientArray‘
下面为cellSubmit设置为remote的循序
下面所有方法调用需要通过jqGrid的实例并且返回相同的jqGrid实例。jqGrid示例图
方法名称 | 方法参数 | 描述 |
---|---|---|
editCell | iRow, iCol, edit | 编辑iRow行号iCol列号的单元格。iRow,iCol定义。如果edit参数设置为false仅选中单元格。设置为true选中单元格并且切换到编辑模式 |
getChangedCells | method |
依据method参数(默认值为all)返回修改过的所有行数据(JSON对象数组),设置为dirty,返回的数据包含id和被修改过的数据,未修改过的不返回。
|
restoreCell | iRow, iCol | 在编辑模式下,还原iRow行号,iCol列号的单元格。如上图不管输入框输入什么,调用$(‘selector‘).restoreCell(3,1)后将会丢弃输入的内容,还原为name3,并且切换为文本模式。 |
saveCell | iRow, iCol | 在编辑模式下,保存iRow行号,iCol列号的单元格内容,并且切换为文本模式 |
单元格编辑模式下输入控件结构依照如下规则When the cell is edited and the input elements is created we set the following rules:
提交到服务器的JSON对象({})数据包含
标签:
原文地址:http://www.cnblogs.com/lcg1123/p/4828395.html