jqGrid事件
jqGrid事件在配置jqGrid时作为属性传入,例如
var lastSel;
jQuery("#gridid").jqGrid({
//...
onSelectRow: function(id){
if(id && id!==lastSel){
jQuery('#gridid').restoreRow(lastSel);
lastSel=id;
}
jQuery('#gridid').editRow(id, true);
},
//...
});
上面这个示例指定了当行被选中时需要出发的事件。你可以添加一些附加操作通过下面列出的事件
3.6.3+版本中每个事件体this对象为grid的引用(DOM对象,不是jquery包装好的),所以你可以通过$(this)得到jqGrid实例引用,和上面的代码是等同的。
var lastSel; jQuery("#gridid").jqGrid({ ... onSelectRow: function(id){ if(id && id!==lastSel){ jQuery(this).restoreRow(lastSel); lastSel=id; } jQuery(this).editRow(id, true); }, ... });
jqGrid事件
| 事件名称 | 参数 | 描述 |
|---|---|---|
| afterInsertRow |
rowid rowdata rowelem |
插入某行数据后触发。 rowid :插入行的id rowdata :插入的行的数据,json格式的键值对,键名称为colModel定义的name值。 rowelem :响应的元素。如果数据为xml则为xml的row节点,为json则为包含此行中所有数据对应json行节点。)rowdata为rowelem的子集) 注意:gridview设置为true时不会触发此事件 |
| beforeProcessing | data, status, xhr | 处理服务器端响应的数据前触发。data参数格式取决于datatype设置的值。如datatype为json,那么data为javascript 对象 |
| beforeRequest | none | 在发送ajax请求数据前触发。datatype设置为function时不触发。返回false阻止ajax请求服务器。 |
| beforeSelectRow | rowid, e |
点击行,但是未选中行前触发。 rowid :此行数据的ID值 e :event object 这个事件需要返回true/false值。返回true将会选中此行,返回false取消选中并且定义的其他后续事件(如onSelectRow等。)都不会执行。 |
| gridComplete | none | 在所有数据加载进入表格和所有处理已经完成后触发。在排序,分页等操作后也会触发。 |
| loadBeforeSend |
xhr, settings |
在ajax发送请求前执行,用于修改 XMLHttpRequest对象(xhr) ,例如修改自定义请求头等,返回false取消ajax请求。 |
| loadComplete | data |
ajax请求返回后立刻触发。 |
| loadError |
xhr, status, error |
ajax请求失败触发。此事件有3个参数 xhr:ajax对象 status:错误信息 error:捕获的错误对象(可选) |
| onCellSelect |
rowid, iCol, cellcontent, e |
点击单元格时触发 rowid :此行数据id iCol :单元格所在列号 cellcontent :单元格内容【注意是单元格的innerHTML,如果配置了colModel中formetter,返回的时格式化后html代码什么的】 e :事件对象 (没有启用单元格编辑模块,否则无效将被禁用) |
| ondblClickRow |
rowid, iRow, iCol, e |
行被双击后触发 rowid :此行数据id iRow :单元格所在行的行号(注意不要和rowid搞混) iCol :单元格处于行中的列号 e :事件对象 iRow,iCol详细介绍参考:单元格编辑 |
| onHeaderClick | gridstate |
点击标题隐藏显示表格的箭头时触发(jqGrid的hidegrid配置为true) gridstate :当前表格状态,visible 或者 hidden |
| onPaging | pgButton |
点击分页按钮,未添加数据前触发。也适用于在页数显示控件内输入新页面回车加载数据和通过select下拉框改变请求数量。此事件只有一个参数pgButton,详情参阅: jqGrid分页pager配置 如果事件返回'stop'将会停止处理,你可以定义自己的分页逻辑。 |
| onRightClickRow |
rowid, iRow, iCol, e |
右键点击航时触发。 rowid :此行数据id iRow :单元格所在行的行号(注意不要和rowid搞混) iCol :单元格处于行中的列号 e :事件对象 注意:这个事件不支持opera浏览器,因为opera不支持oncontextmenu事件。 |
| onSelectAll |
aRowids, status |
配置multiselect为true后,点击表头的checkbox全选控件时触发。 aRowids :当前显示的所有行对应的数据id数组 status :布尔值,表头全选checkbox的状态,选中为true,否则为false 注意:aRowids不管表头checkbox是否勾选,都会包含所有行对应的数据id数组 |
| onSelectRow |
rowid, status, e |
在行点击选中后触发,可以通过beforeSelectRow返回值设置是否选中 rowid :此行数据的ID值 status :此行状态,true选中,false未选中。 e :事件对象 这个事件在multiselect设置为true时比较有用 |
| onSortCol |
index, iCol, sortorder |
在点击可排序的表头但是未对数据排序前执行Raised immediately after sortable column was clicked and before sorting the data. index :colModel中配置的index值 iCol :单元格处于行中的列号 sortorder :升序或者降序('asc' 或者 'desc') 返回'stop'阻止操作执行,可以定义自己的排序逻辑。 |
| resizeStart | event, index |
修改列宽前触发 event :事件对象 index:colModel中配置的index值 |
| resizeStop | newwidth, index |
修改列宽结束后触发。 newwidth :新的列宽 index:colModel中配置的index值 |
| serializeGridData | postData |
设置此事件,可以序列化ajax需要发送的数据。事件需要返回序列化好的数据。可以用于发送自定义数据到服务器,例如json/xml格式的字符串等。 postData作为事件参数。 |
属于单元格编辑和subGrid 的附加事件请参阅各自的详细介绍
事件执行顺序
发送ajax请求时的事件执行顺序
-
beforeRequest
-
loadBeforeSend
-
serializeGridData
-
loadError (如果服务器发生错误,5~7的事件不会执行。如果没有错误,4不执行,跳到5继续往下执行)
-
beforeProcessing
-
gridComplete
-
loadComplete
jqGrid v4.3.2+新增事件
| Event | Parameters | Description |
|---|---|---|
| jqGridResizeStart | … | … |
| jqGridResizeStop | … | … |
| jqGridAfterInsertRow | … | … |
| jqGridGridComplete | none | … |
| jqGridAfterGridComplete | none | … |
| jqGridBeforeRequest | none | … |
| jqGridLoadComplete | … | … |
| jqGridAfterLoadComplete | … | … |
| jqGridSortCol | … | … |
| jqGridSelectAll | … | … |
| jqGridBeforeSelectRow | … | … |
| jqGridCellSelect | … | … |
| jqGridDblClickRow | … | … |
| jqGridRightClickRow | … | … |
| jqGridHeaderClick | … | … |
| jqGridSelectRow | … | … |
| jqGridShowHideCol | … | … |
| jqGridRemapColumns | … | … |
| jqGridKeyLeft | … | … |
| jqGridKeyRight | … | … |
| jqGridKeyEnter | … | … |
| jqGridKeySpace | … | … |
| jqGridToolbarBeforeSearch | none | … |
| reloadGrid | … | … |
| jqGridToolbarAfterSearch | none | … |
| jqGridToolbarBeforeClear | none | … |
| jqGridToolbarAfterClear | none | … |
| jqGridFilterBeforeShow | … | … |
| jqGridFilterAfterShow | … | … |
| jqGridFilterInitialize | … | … |
| jqGridFilterSearch | none | … |
| jqGridFilterReset | none | … |
| jqGridAddEditBeforeCheckValues | … | … |
| jqGridAddEditClickSubmit | … | … |
| jqGridAddEditBeforeSubmit | … | … |
| jqGridAddEditErrorTextFormat | … | … |
| jqGridAddEditAfterSubmit | … | … |
| jqGridAddEditAfterComplete | … | … |
| jqGridAddEditBeforeInitData |
form, oper |
此事件在 dataInit 方法 form :jqGrid编辑添加操作浮动表单对象(jQuery object) oper :操作类型, “add” 或者 “edit” |
| jqGridAddEditBeforeShowForm | … | … |
| jqGridAddEditAfterShowForm | … | … |
| jqGridAddEditInitializeForm | … | … |
| jqGridAddEditClickPgButtons | … | … |
| jqGridAddEditAfterClickPgButtons | … | … |
| jqGridInlineEditRow | … | … |
| jqGridInlineAfterSaveRow | … | … |
| jqGridInlineSuccessSaveRow | … | … |
| jqGridInlineErrorSaveRow | … | … |
| jqGridInlineAfterRestoreRow | … | … |
| jqGridBeforeEditCell | … | … |
| jqGridAfterEditCell | … | … |
| jqGridSelectCell | … | … |
| jqGridBeforeSaveCell | … | … |
| jqGridBeforeSubmitCell | … | … |
| jqGridAfterSubmitCell | … | … |
| jqGridAfterSaveCell | … | … |
| jqGridErrorCell | … | … |
| jqGridAfterRestoreCell | … | … |
| jqGridSubGridBeforeExpand | … | … |
| jqGridSubGridRowExpanded | … | … |
| jqGridSubGridRowColapsed | … | … |
| jqGridGroupingClickGroup | … | … |
| jqGridImportComplete | … | … |
来源:http://www.trirand.com/jqgridwiki/doku.php?id=wiki:events
加支付宝好友偷能量挖...

原创文章,转载请注明出处:jqGrid事件
