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请求返回后立刻触发。
data :响应的数据,取决于datatype配置(datatype为json时和服务器返回的json格式字符串转为json对象后一致)

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请求时的事件执行顺序

  1. beforeRequest
  2. loadBeforeSend
  3. serializeGridData
  4. loadError (如果服务器发生错误,5~7的事件不会执行。如果没有错误,4不执行,跳到5继续往下执行)
  5. beforeProcessing
  6. gridComplete
  7. 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事件
评论(0)Web开发网
阅读(3789)喜欢(0)不喜欢(1)jqGrid中文API