在设计角色权限时, 终于用到了grid的actioncolumn,如下:

{
header: '权限设定',
xtype: 'actioncolumn',
items: [{
icon: 'Content/images/cog_edit.png',
tooltip: '权限设定',
handler: function (grid, rowIndex, colIndex) {
//var rec = grid.getStore().getAt(rowIndex);
//alert("Edit " + rec.get('Role_name'));
}]
},

  这是官方示例中的事件处理方式,但是用这种方式很明显的不符合MVC的模式, 要怎么才能够在MVC模式中应用actioncolumn的事件呢?

  因为actioncolumn中的元素,它只是一张图片,而不是Extjs中的组件, 所以不能应用以下方式:

this.control({
'mygrid actioncolumn button[type=edit]' : this.onEdit

  上面的方式,应该是最好的, 但不幸的是它是不可能实现的, 但是有另一种方法, 它和上面的一样简洁:让actioncolumn的处理函数去触发grid的自定义事件(由你自己定义),

handler: function(grid, rowIndex, colIndex) {
// fire custom event "itemeditbuttonclick"
this.up('grid').fireEvent('itemeditbuttonclick', grid, rowIndex, colIndex);
}

然后控制器上实现如下:

this.control({
'viewport > testpanel': {
itemeditbuttonclick: this.onEdit,
itemdeletebuttonclick: this.onDelete
}
});

感慨一下,国外的extjs资料确实多啊。

自定义事件原理以后再深入了解吧, 最近做项目每天脑袋胀胀的

------------------------------------------------

发现在此函数中, 给grid添加window, grid.add('')时会报错, 然后 debug发现grid是Ext.grid.View类型, 从属性中看到ownCt属性, 哈哈。

[参考]http://stackoverflow.com/questions/12716675/how-to-perform-view-controller-separation-when-using-an-actioncolumn-ext-grid

NSS_09 gridpanel中的actioncolumn事件的更多相关文章

  1. Extjs中给同一个GridPanel中的事件添加参数的方法

    Extjs中给同一个GridPanel中的事件添加参数的方法: this.isUse = new Ext.Action({            text:'启用',            scope ...

  2. 获取gridpanel 中 checkbox的状态

    最近一直在用extjs前天框架来写作项目,很少用到这个框架,过程中遇到很多麻烦, 可能就是一个小的问题会困扰你很长时间, example: 我做一个报表,要获取gridpanel中 checkbox的 ...

  3. 55. GridPanel中getSelectionModel详解

    转自:https://blog.csdn.net/qq_29663071/article/details/50728429 本文导读:Ext.grid.GridPanel继承自Panel,其xtype ...

  4. 深刻理解:C#中的委托、事件

    C#中的事件还真是有点绕啊,以前用JavaScript的我,理解起来还真是废了好大劲!刚开始还真有点想不明白为什么这么绕,想想和JS的区别,最后终于恍然大悟! C#中事件绕的根本原因: C#的方法,它 ...

  5. C# 中的委托和事件

    觉得这篇文章写的非常好,大神之作,由简入繁,对我这种初学者来说帮忙很大,特此留存下. 摘自:http://tracefact.net/CSharp-Programming/Delegates-and- ...

  6. C# 中的委托和事件(转)

    引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易.它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去 ...

  7. C# 中的委托和事件(转载)

    引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易.它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去 ...

  8. 关于ios苹果系统的中的右键事件,查遍了全网都没有的小技巧。

    前阵子公司要求写一套手机端,兼容各种平台和系统,当然,pc端也没有放过. 我用了bootstrap框架和jq.在安卓中的右键事件只需要取消浏览器默认事件,然后长按就可以触发pc端的右键事件,非常好,一 ...

  9. vlc 在ie11 中的addEventListener事件不触发

    在vlc控件中触发一事件,在IE11之前的版本使用attachEvent注册一个回调函数后IE11可以捕获到事件,但IE11中提示attachEvent不支持.经查询发现IE11已经去掉了attach ...

随机推荐

  1. initrd映像文档的作用和制作

    1.http://pan.baidu.com/s/1dDrGeKL 2.http://wenku.baidu.com/link?url=qPa_jfkEZCbERnwMYWLwm9EZJ_ebMRJA ...

  2. Javascript Date原型方法

    // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占 ...

  3. MR-为什么MR类的变量喜欢定义在方法外面?

    写了一些MR后发现不管是别人写的还是官方给的,比如map方法,变量都是定义在方法外面. 因为之前都是照猫画虎的写的,所以自己也一直这么写,可是为什么呢? 我试了试定义在方法里面,程序照样跑,试了几个程 ...

  4. python3.x 学习心得

    今天晚上怎么这么不顺利呢,进家灯泡坏了,唉,房东也来收房租了,但是还是要坚持今晚给大家更新一番,笔者接触python也有一段时间了.虽然说现在可以看懂别人的代码.但是一到自己写写代码就感觉很懵逼了,本 ...

  5. ServiceStack.Redis.RedisNativeClient的方法“get_Db”没有实现

    Redis 4.0.0.0版本已经开始收费 Redis 4.0.5.0 已经完成收费 今日在更换Redis版本时 出现了ServiceStack.Redis.RedisNativeClient的方法“ ...

  6. IOS 图片转换二进制 二进制转换为图片

    //类方法 图片 转换为二进制 +(NSData *)Image_TransForm_Data:(UIImage *)image { NSData *imageData = UIImageJPEGRe ...

  7. 通过继承nsoperation的方法--处理复杂任务

    #import <Foundation/Foundation.h> @class TTOperation; @protocol TTOperationDelegate <NSObje ...

  8. Debian 8 在虚拟环境中安装kivy

    mkvirtualenv kivy 或者按官方教程所说: virtualenv --no-site-packages kivyinstall (kivy)~/pythonvenv ᐅ pip list ...

  9. 【Android 界面效果40】Android4.0-Fragment框架实现方式剖析(一)

    经过反复的学习对比,个人觉得带着问题学习新知是最有效的学习方式,因此文本就以提问的方式来讲述Fragment框架实现方式. 1.什么是Fragment? Fragment包含在Activity中,Fr ...

  10. struts1标签-<html:radio> 使用注意事项

    struts1标签-<html:radio> 使用注意事项 1.默认选中效果 在后台XxxForm中写入如下代码,可保证默认选中效果实现: @Override public void re ...