Ext JS 网格面板间隔移除
Posted
技术标签:
【中文标题】Ext JS 网格面板间隔移除【英文标题】:Ext JS grid panel spacer removal 【发布时间】:2012-05-29 10:13:56 【问题描述】:我对 Ext JS 4 很陌生,我创建了一个带有固定列的面板。似乎存在某种错误(如在某个论坛上阅读的那样),如果我修复了一个列,则 spacer(xtype: tbspacer) 会自动插入其顶部,从而破坏表格的对齐方式(如果这只是配置错误的问题,请告诉我)。我想做的是移除那个垫片。
为了做到这一点,我必须选择它,但它没有“静态”id,这意味着如果我对视图进行任何修改,分隔符会获得另一个 id,所以我需要一个方法来在不使用 id 的情况下选择它。我试过做这样的事情:
list.query('.tbspacer')[0].setHeight(0);
其中list
是面板。但这似乎不起作用。 list.query()
方法返回一个空数组。我在尝试选择 textfield 时遇到了同样的问题。
是我遗漏了什么,还是只是另一个错误?
这就是我创建锁定列的方式(没什么特别的):
header: headerName,
dataIndex: i,
locked: true
编辑这里也是截图:
编辑 那个 spacer 本来就不应该存在,它(也许现在仍然存在?)在那个版本的框架中。请参阅我的另一个问题here。我会将此处唯一的答案标记为已接受,因为它似乎可以解决此问题中提到的问题。
【问题讨论】:
你能提供你的代码吗?并且可能是屏幕截图或微弱的,因此我们可以确切地看到正在发生的事情。 @sha 我用一些代码编辑了我的问题(我不知道我应该从中选择什么)。至于屏幕截图,我无法制作出高质量的屏幕截图。问题是固定列中的所有数据都在其他行的下方。 什么是locked
?我在 ExtJs 文档中找不到它。如果您需要禁用调整列的大小 - 使用 resizable: false
@sha 他们的文档中似乎缺少它,但它固定了一个列,这意味着当我向右滚动时它不会消失,无论如何它都会保持在第一个位置.
我现在明白你想要实现的目标,但没有截图就无法真正了解问题所在...(将header
替换为text
btw)
【参考方案1】:
首先,您执行了错误的查询。它应该只是tbspacer
,没有点。其次,不是setHeight(0)
,为什么不只是destroy
呢?
list.query('tbspacer')[0].destroy();
【讨论】:
你知道它为什么会被创建吗?是 4.1 的错误吗? 不知道。但是 Ext JS 中有很多错误,所以这很可能是一个。另一方面,如果locked
是私有 API,那么使用它就不能抱怨“错误”。你最好在煎茶论坛上问。以上是关于Ext JS 网格面板间隔移除的主要内容,如果未能解决你的问题,请参考以下文章