在 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,为啥?