在 ExtJS GridPanel 上使用 RowEditor 扩展时显示问题

Posted

技术标签:

【中文标题】在 ExtJS GridPanel 上使用 RowEditor 扩展时显示问题【英文标题】:Display problem when using RowEditor extension on an ExtJS GridPanel 【发布时间】:2011-05-17 10:48:48 【问题描述】:

我正在使用 RowEditor 扩展来编辑 GridPanel。我的 ExtJS 版本是 3.3.0。我需要一些字段是可编辑的,而其他字段则根本不可编辑,我通过忽略这些列上的 editor 属性来做到这一点。问题是,找不到编辑器的时候,在RowEditor.js中人为生成这样的:

for(var i = 0, len = cm.getColumnCount(); i < len; i++)
        var c = cm.getColumnAt(i),
            ed = c.getEditor();
        if(!ed)
            ed = c.displayEditor || new Ext.form.DisplayField();
        else
            ed = ed.field;
        
        //uninteresting code...
        this.insert(i, ed);
    

数据因此被双重显示,如下图所示。

有没有一种快速的解决方案可以删除那些不必要的文本,但仍然可以查看网格上的现有数据?提前致谢。

【问题讨论】:

【参考方案1】:

我要假设,不。并非没有重写插件的一部分。再说一次,你也许可以手动循环你不想要的控件并隐藏它们..但这似乎是错误的。

老实说,我会不使用 rowEditor 插件。拥有“常规”编辑器同样简单(甚至可能与您迄今为止用于指定编辑器的代码相同)。

然后,就像您已经完成的那样,您只需忽略不需要的列的 editor 选项。

如果您想拥有更漂亮的外观,可以尝试设置所选行的样式(Ext.NET 中的GetRowClass,ExtJS 中类似?或者只是覆盖所选行的 CSS 类)。

【讨论】:

以上是关于在 ExtJS GridPanel 上使用 RowEditor 扩展时显示问题的主要内容,如果未能解决你的问题,请参考以下文章

在 ExtJS GridPanel 上使用 RowEditor 扩展时显示问题

extjs 如何单击下让GridPanel里某一行的复选框选中

使用 ExtJS 在带有 GridPanel 的窗口上获取值

extjs 5,在gridpanel上定义dropzone,但不能drop,为啥?

ExtJs如何在Window窗口中加载页面上的GridPanel??

ExtJs Gridpanel 存储刷新