具有多个xtypes的ExtJS 5 Grid Widget列

时间:2014-06-10 17:01:22

标签: javascript extjs extjs5

我有一个这样的数据对象:

data = [
    {text: 'What is your name?', xtype: 'textfield'},
    {text: 'What is your favorite number?', xtype: 'numberfield'}
]

我需要一个网格来显示自己行中的每个数据对象。该行应包含提供的xtype的表单字段。

使用此插件在ExtJS 4中实现这一点非常简单:http://skirtlesden.com/ux/component-column

使用此插件,开发人员可以指定一个"渲染器"列配置上的函数,它返回任意组件的配置对象,然后该组件将在单元格中呈现。不幸的是,这个插件不适用于ExtJS 5。

ExtJS 5似乎承诺通过新的" Widget Column"来修复对这个插件的需求。功能所以我急切地等待它的发布,但是当它最终出来时,它没有辜负炒作。似乎要求每一行都具有相同的精确组件,只有不同的值。似乎没有办法让Widget列的一行有一个文本字段而下一行有一个数字字段。

我的结论是正确的,新的ExtJS 5" Widget Column"功能太有限,不适用于我的用例?

1 个答案:

答案 0 :(得分:1)

我的一个项目遇到了同样的问题。不幸的是,渲染器不是widget列的选项。 Extjs 5.0.1据说即将发布,他们声称这将解决Extjs 5中存在的许多错误,所以我希望这包含在修复程序中。在那之前,我建议使用您引用的组件列插件。只要你替换

,它适用于Extjs 5
return this.lastFrameWidth = parentDiv.getFrameWidth('lr') + parentTd.getFrameWidth('lr');

return this.lastFrameWidth = parentDiv.getBorderWidth('lr') + parentDiv.getPadding('lr') + parentTd.getBorderWidth('lr') + parentTd.getPadding('lr');

Source

渲染器的一个参数是组件在rendered时所在的记录和行号,并且可以保存在自定义属性中,以便在以后的事件中使用,例如change

相关问题