Gird事件机制初级读本


Posted in Javascript onMarch 10, 2007

原文地址 文章日期:2006/09/25/

 新版.32 的YUI-EXT包含了GIRD事件机制的重要升级。许多新事件现在可以用了,监听事件的机制也改变了(尽管它仍然向后兼容)。

侦听事件的方法

鉴于 YAHOO.util.CustomEvent只提供简单的访问,Grid和相关的对象扩展了新的方法来侦听事件,这些事件你应该是熟悉的。它们是:

  • addListener(eventName, fn, scope, override) - "eventName" should be one of the events defined below. "fn" is the function to call when the event occurs. "scope" is an optional object providing the scope (this) of the function. "override" is whether or not to apply that scope and is only there for backwards compatibility.
  • removeListener(eventName, fn, scope) -移除前先提交的事件侦听
  • on(eventName, fn, scope, override) - addListener 快捷方式

这些方法与YAHOO.uitl.Event一样,有相同的署名(signatures)。

onRowSelect事件的侦听:

var sm = grid.getSelectionModel(); 
sm.addListener('rowselect', myHandler);

这是GIRD暴露事件的列表和参数简介:

- "this" 指的是Grid对象;
- "e" 指的是 YAHOO.ext.EventObject (常规化事件对象) ,除了Drag & Drop对象是标准浏览器事件对象。
- "dd" 指的是Grid的YAHOO.ext.GridDD对象。

译注:下面事件解释以原文方式提供以便读者准确理解:

  • cellclick - (this, rowIndex, columnIndex, e) - Fires when a cell is clicked
  • celldblclick - (this, rowIndex, columnIndex, e) - Fires when a cell is double clicked
  • rowclick - (this, rowIndex, e) - Fires when a row is clicked
  • rowdblclick - (this, rowIndex, e) - Fires when a row is double clicked
  • headerclick - (this, columnIndex, e) - Fires when a header is clicked
  • rowcontextmenu - (this, rowIndex, e) - Fires when a row is right clicked
  • headercontextmenu - (this, columnIndex, e) - Fires when a header is right clicked
  • beforeedit - (this, rowIndex, columnIndex, e) - Fires just before editing is started on a cell
  • afteredit - (this, rowIndex, columnIndex, e) - Fires immediately after a cell is edited
  • bodyscroll - (scrollLeft, scrollTop) - Fires when the grid's body is scrolled
  • columnresize - (columnIndex, newSize) Fires when the user resizes a column.
  • startdrag - (this, dd, e) - Fires when row(s) start being dragged
  • enddrag - (this, dd, e) - Fires when a drag operation is complete
  • dragdrop - (this, dd, targetId, e) - Fires when dragged row(s) are dropped on a valid DD target
  • dragover - (this, dd, targetId, e) Fires while row(s) are being dragged. "targetId" is the id of the Yahoo.util.DD object the selected rows are being dragged over.
  • dragenter - (this, dd, targetId, e) - Fires when the dragged row(s) first cross another DD target while being dragged
  • dragout - (this, dd, targetId, e) - Fires when the dragged row(s) leave another DD target while being dragged

Gird事件的例子

function onCellClick(grid, rowIndex, colIndex, e){  
 alert('Cell at row ' + rowIndex + ', column ' + colIndex + ' was clicked!'); 
 } 
 var grid = ... // 这里注册事件 grid.addListener('cellclick', onCellClick);

 

普通Grid事件
Since there is no way to envision everything you may want to do with the grid, I've also exposed direct access to many of the grid's raw events. All of these events pass one parameter to their handler: "e" a YAHOO.ext.EventObject.
  • click
  • dblclick
  • mousedown
  • mouseup
  • mouseover
  • mouseout
  • keypress
  • keydown
LoadableDataModel (from which XMLDataModel and JSONDataModel are derived) picked up a useful new event:
beforeload - Fires right before the model starts fetching remote data.
You could use this event combined with the load event to hide/show a loading indicator.
var img = getEl('loading-indicator'); var dm = grid.getDataModel(); dm.addListener('beforeload', img.show, img, true); dm.addListener('load', img.hide, img, true);
Hopefully this can get you started with the new event system. If you have any questions, feel free to post in the Help Forum and I will help you out.
Jack
Javascript 相关文章推荐
jquery datepicker参数介绍和示例
Apr 15 Javascript
js实现文本框选中的方法
May 26 Javascript
jQuery实现点击小图显示大图代码分享
Aug 25 Javascript
JQuery实现级联下拉框效果实例讲解
Sep 17 Javascript
node网页分段渲染详解
Sep 05 Javascript
jQuery图片拖动组件Dropzone用法示例
Jan 17 Javascript
bootstrap daterangepicker汉化以及扩展功能
Jun 15 Javascript
使用Node.js实现RESTful API的示例
Aug 01 Javascript
移动端(微信等使用vConsole调试console的方法
Mar 05 Javascript
Vue+axios+WebApi+NPOI导出Excel文件实例方法
Jun 05 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
Jun 11 Javascript
原生微信小程序开发中 redux 的使用详解
Feb 18 Javascript
Gird组件 Part-3:范例RSSFeed Viewer
Mar 10 #Javascript
对YUI扩展的Gird组件 Part-2
Mar 10 #Javascript
对YUI扩展的Gird组件 Part-1
Mar 10 #Javascript
学习YUI.Ext第七日-View&JSONView Part Two-一个画室网站的案例
Mar 10 #Javascript
学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
Mar 10 #Javascript
学习YUI.Ext 第七天--关于View&JSONView
Mar 10 #Javascript
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
Mar 10 #Javascript
You might like
php实现阳历阴历互转的方法
2015/10/28 PHP
PHP实现压缩图片尺寸并转为jpg格式的方法示例
2018/05/10 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
php集成开发环境详解
2019/09/24 PHP
js常用排序实现代码
2010/12/28 Javascript
JS 获取select(多选下拉)中所选值的示例代码
2013/08/02 Javascript
jquery实现盒子下拉效果示例代码
2013/09/12 Javascript
js鼠标及对象坐标控制属性详细解析
2013/12/14 Javascript
jQuery滚动条插件nanoscroller使用指南
2015/04/21 Javascript
浅谈JavaScript中的Math.atan()方法的使用
2015/06/14 Javascript
ajax在兼容模式下失效的快速解决方法
2016/03/22 Javascript
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
2017/08/16 Javascript
AngularJS模态框模板ngDialog的使用详解
2018/05/11 Javascript
Vue 菜单栏点击切换单个class(高亮)的方法
2018/08/22 Javascript
Vuex的基本概念、项目搭建以及入坑点
2018/11/04 Javascript
Vue+iview+webpack ie浏览器兼容简单处理
2019/09/20 Javascript
Python批量修改文件后缀的方法
2014/01/26 Python
解决新django中的path不能使用正则表达式的问题
2018/12/18 Python
Python XlsxWriter模块Chart类用法实例分析
2019/03/11 Python
基于PyQT实现区分左键双击和单击
2020/05/19 Python
Python如何使用ConfigParser读取配置文件
2020/11/12 Python
python实现代码审查自动回复消息
2021/02/01 Python
CSS中垂直居中的简单实现方法
2015/07/06 HTML / CSS
英国绿色商店:Natural Collection
2019/05/03 全球购物
怎样写留学自荐信
2013/11/11 职场文书
大学生两会精神学习心得体会
2014/03/10 职场文书
纪律教育月活动总结
2014/08/26 职场文书
酒店管理专业毕业生自我鉴定
2014/09/29 职场文书
美国旅游签证工作证明
2014/10/14 职场文书
作风建设整改方案
2014/10/27 职场文书
2014年小学图书室工作总结
2014/12/09 职场文书
幼儿教师小班个人总结
2015/02/05 职场文书
浪漫的婚礼主持词
2015/06/30 职场文书
Mysql数据库按时间点恢复实战记录
2021/06/30 MySQL
MySQL七种JOIN类型小结
2021/10/24 MySQL
mysql实现将字符串字段转为数字排序或比大小
2022/06/14 MySQL