解决Ext4.2.3中propertyGrid修改后点击排序报错

Ext4.2.3中PropertyGrid修改后点击排序报错,具体错误信息如下:

一开始还怀疑是自己哪里配置错了,各种尝试结果还是一样。查遍百度和谷歌,无果,只有一篇帖子说是4.2.4修正了。还是自己动手吧,自己动手丰衣足食。

点开报错地方(如下图所示),原来是me.field.column没有定义。

然后继续找,找啊找啊找到Ext.grid.property.GridgetCellEditor方法。此方法有参数column,可在方法体内,column就没有被用到过,于是就感觉问题出在这里。

经过实践,讲此方法修改如下,此bug就解决了。

    getCellEditor : function(record, column) {
        var me = this,
            propName = record.get(me.nameField),
            val = record.get(me.valueField),
            editor = me.getConfig(propName, ‘editor‘),
            type = me.getConfig(propName, ‘type‘),
            editors = me.editors;

        if (editor) {
            if (!(editor instanceof Ext.grid.CellEditor)) {
                if (!(editor instanceof Ext.form.field.Base)) {
                    editor = Ext.ComponentManager.create(editor, ‘textfield‘);
                }
                editor = me.setConfig(propName, ‘editor‘, new Ext.grid.CellEditor({ field: Ext.apply(editor,{column:column}) }));
            }
        } else if (type) {
            switch (type) {

                case ‘date‘:
                    editor = new Ext.grid.CellEditor({ field: new Ext.form.field.Date({column: column,selectOnFocus: true})});
                    break;
                case ‘number‘:
                    editor = new Ext.grid.CellEditor({field: new Ext.form.field.Number({column: column,selectOnFocus: true})});
                    break;
                case ‘boolean‘:
                    editor = new Ext.grid.CellEditor({field: new Ext.form.field.ComboBox({column: column,
                        editable: false,
                        store: [[ true, me.headerCt.trueText ], [false, me.headerCt.falseText ]]
                    })});
                    break;
                default:
                    editor = new Ext.grid.CellEditor({field: new Ext.form.field.Text({column: column,selectOnFocus: true})});
            }
        } else if (Ext.isDate(val)) {
            editor = new Ext.grid.CellEditor({ field: new Ext.form.field.Date({column: column,selectOnFocus: true})});
        } else if (Ext.isNumber(val)) {
            editor = new Ext.grid.CellEditor({field: new Ext.form.field.Number({column: column,selectOnFocus: true})});
        } else if (Ext.isBoolean(val)) {
            editor = new Ext.grid.CellEditor({field: new Ext.form.field.ComboBox({column: column,
                editable: false,
                store: [[ true, me.headerCt.trueText ], [false, me.headerCt.falseText ]]
            })});
        } else {
            editor = new Ext.grid.CellEditor({field: new Ext.form.field.Text({column: column,selectOnFocus: true})});
        }

        editor.editorId = propName;
        return editor;
    }
时间: 2024-10-13 21:57:21

解决Ext4.2.3中propertyGrid修改后点击排序报错的相关文章

Python中安装bs4后,pycharm依然报错ModuleNotFoundError: No module named 'bs4'

学习网络抓取时,第一步出现问题. 执行示例代码 from urllib.request import urlopen from bs4 import BeautifulSoup html = urlopen("http://www.pythonscraping.com/exercises/exercise1.html") bsObj = BeautifulSoup(html, "html.parser") print(bsObj.h1) 执行结果 Traceback

[已解决]springBoot 中添加 dev-tools后,运行程序报错Unenhance strategy

发生条件:在pom.xml中增加dev-tools的依赖,程序启动后,调用程序接口报错 问题现象: ------------------------------------------------------------- Registered concrete types: 5 (approximate size: 630.7 kB) [interface java.util.Collection] : ArrayList<Object> [interface java.util.Map]

mysql修改后启动my.cnf报错Starting MySQL... ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).

mysql中文乱码解决 mysql修改my.cnf后启动报错Starting MySQL... ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid). 这里简单明了地说下: 对于mysql5.5版本,需要在/etc/mysql/my.cnf做如下修改: [client]下添加: default-character-set = utf8 [mysqld]下添加: cha

SQLSERVER中返回修改后的数据

在公司看到同事写了个SQL2005的新特性的文章,觉得很实用,在这里和大家分享下. 这种技术主要是用到了inserted和deleted虚拟表,这两张表相信大家都很熟悉.以前我们主要是在触发器中使用. 我们先来复习下这两个表: Inserted和Deleted这两个表是逻辑表,并且这两个表是由系统管理的,存储在内存中,不是存储在数据库中,因此,不允许用户直接对其修改.这两个表的结构与被该触发器作用的表在相同的表结构.这两个表是动态驻留在内存中的,当触发器工作完成,它们也被删除. 接下来,看看我们

程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:对形参b所指结构体变量中的数据进行修改,并在主函数中输出修改后的数据。

程序通过定义学生结构体变量,存储学生的学号.姓名和3门课的成绩.函数fun的功能是:对形参b所指结构体变量中的数据进行修改,并在主函数中输出修改后的数据.例如,若b所指变量t中的学号.姓名和三门课的成绩一次是:10002."ZhangQi".93.85.87,修改后输出t中的数据应为:10004."Lijie".93.85.87. #include <stdio.h>#include <string.h>struct student { lo

vue组件中的样式属性:scoped,解决在父组件中无法修改子组件样式问题

Scoped CSS规范是Web组件产生不污染其他组件,也不被其他组件污染的CSS规范. vue组件中的style标签标有scoped属性时表明style里的css样式只适用于当前组件元素,它是通过使用PostCSS来改变以下内容实现的: <style scoped> .example { color: red; } </style> <template> <div class="example">hi</div> </

eclipse中pom.xml org.apache.maven.plugins报错的解决

作为一个热爱前端的同学,花大把时间做java真是无奈呀 = .= ,这个月学校组织了一次实训,因为没有前端相关的选项,只好选择了以前学过一段时间的java,于是乎SpringMVC现学现用,搞得不亦乐乎.实训之前一直持排斥态度,毕竟以后想找前端方面的工作,没成想还是学到了很多东西,尤其对前后端的数据交互有了更深入的理解(毕竟是自己和自己交互,汗). 好了,这次实训的总结等结束了再写,这一次先记录一下昨天在配置maven时走的一些弯路,昨晚问了度娘和谷歌都没能得到太好的解决,希望能给以后出现同样问

cocos2d-js 命令框中cocos run -p web浏览器无限报错解决

在cocos2d-js论坛里的发帖,最终还是找到了答案! 解决方法: cocos run -p web运行任何一个项目后,浏览器无限报错

解决python中selen模块中&#39;list&#39; object has no attribute &#39;send_keys&#39;报错

程序在执行如下代码的时候报错'list' object has no attribute 'send_keys' 解决: 把find_elements_by_id方法改成find_element_by_id 参考: https://stackoverflow.com/questions/29957373/selenium-python-send-key-error-list-object-has-no-attribute 解决python中selen模块中'list' object has no