ExtJS的grid行编辑插件事件触发
程序员文章站
2023-11-17 22:51:16
本来这个号是为了找工作(记录自己找工作期间刷代码的所想所得,重要是假装自己有一个技术博客...),但是排序算法还没刷完就找到了工作,所以就懒病继续发作就没写了。现在工作了,真是什么都不懂,为了记录工作中遇到的问题,必须再把它捡起来。 最近的项目中要用到ExtJS,因为根本就不懂,所以就给我安排了一个 ......
本来这个号是为了找工作(记录自己找工作期间刷代码的所想所得,重要是假装自己有一个技术博客...),但是排序算法还没刷完就找到了工作,所以就懒病继续发作就没写了。现在工作了,真是什么都不懂,为了记录工作中遇到的问题,必须再把它捡起来。
最近的项目中要用到ExtJS,因为根本就不懂,所以就给我安排了一个简单的表格增删查改的实现,之中遇到了许多问题,慢慢解决吧,现在先说说在一个grid中,当使用了行编辑插件后,点击保存如何触发事件。
如何在view面设置一个监听、触发监听,之后在控制器页面来处理这个监听程序,过程如下:对于每一个类,由什么来触发监听,可以再ExtJS自带的api文档中找到该类的Events项,里面有哪些事件,哪些事件就能触发监听。例如Ext.grid.plugin.RowEditing类,有beforeedit、canceledit、edit、validateedit四种事件,那么listener就可以监听这四种事件,阅读api文档可知它们分别监听什么事件,在view页面插件配置项下编写如下代码:
listeners: { edit: { fn: 'wobuzhidao', scope: 'controller' } }
Listeners监听了edit事件,其处理函数名为wobuzhidao,作用范围在控制器,控制器代码如下
wobuzhidao: function (editor, context, eOpts) { alert(context.record.get('age')); }
在这个处理函数里,有3个参数,是从view页面监听程序的edit传过来的,通过查阅api文档我们可以看到这三个参数,并且知道他们分别代表什么。以上代码实现了在grid里的plugin插件中,对行编辑设置了一个监听,当编辑保存后会触发edit事件,通过context参数的.record.get(‘age’)获取编辑行对应列的值。