Extjs将网格面板添加到手风琴内容中

时间:2012-11-12 15:09:56

标签: extjs grid extjs4 accordion

我实际上不确定这是否可行,但无论如何我都会问它。我有一组手风琴控件,在每个内容体内我需要显示一个网格面板。网格面板需要附加一个click事件。我尝试过简单地创建网格面板并将手风琴的html属性设置为它,但这不会产生任何内容。

我能以某种方式实现上述目标吗?

2 个答案:

答案 0 :(得分:4)

您不能拥有html内容(由媒体资源插入)以及任何其他内容。如果添加任何itemhtml属性值将不会设置/覆盖。但是你肯定可以把任何你想要的东西放到一个手风琴面板上。即使是网格。但对于这种情况,并基于last question,我建议您将视图引用到网格中。您只需使用ComponentQuery

即可

可以使用控制器的control功能应用点击事件。

为了您的基本理解:

在ExtJS中,你很少使用普通的HTML代码。在大多数情况下,您使用任何类型的组件。 All嵌套在items-array或dockedItem-array中。这些数组中的项目也由布局系统处理。

适用于控制功能的一些查询示例

以下this指的是控制器本身。

你知道网格的ID(通常你没有这样做)。 Id是以#

开头的
control({'#yourId': {itemclick: this.onItemclick }});

您知道xtype并且只有一个此类型的实例。您还可以通过在xtypes之间使用空格来描述路径。

control({'grid': {itemclick: this.onItemclick }});

您已将自定义属性设置为网格(您可以通过这种方式引用任何属性)。这个与上面的完全兼容。 我建议您使用

control({'grid[customIdent=accordionGrid]': {itemclick: this.onItemclick }});

这只是使用ComponentQueries的一些方法,还有更多。有关更详细的说明,请参阅ComponentQuery

的sencha API

另请注意,每个组件都实现了 up() down() 方法,这些方法也支持ComponentQueries。

我忘了提到:对于一个控件,查询只需要返回一个结果(只有第一个结果),另一方面,ComponentQuery可以返回多个结果。

答案 1 :(得分:0)

这是完全可能的,但是手风琴的身体不适合放入。你需要将它添加到比赛的items: []阵列中。正文(或html)只接受html。 示例:

http://docs.sencha.com/ext-js/4-1/#!/example/layout/accordion.html

这个网格中有一个网格。