将FormPanel放在RowExpander中?

时间:2011-05-31 20:13:35

标签: javascript html css extjs extjs3

有没有办法在网格上的 RowExpander中构建FormPanel ?我想在每一行中创建extjs表单,但是现在我只能指定一个必须是HTML的模板。

也就是说,我有这个:

var expander = new Ext.ux.grid.RowExpander({
    enableCaching: false,
    tpl : new Ext.Template($('#row-expander-template').html())
});

如何修改它以在行中使用Ext JS Forms?

2 个答案:

答案 0 :(得分:1)

搞笑的hackery:

使用临时元素作为模板,在扩展事件上,将表单呈现给临时元素,然后将其从DOM中删除。

答案 1 :(得分:0)

我没有试过这个,但是看看RowExpander的源代码,似乎可以这样做的方法是将FormPanel渲染到RowExpander的展开事件处理程序内的扩展行体。

但是,您还需要在刷新视图时清理FormPanel。那部分比较棘手。我想你可能会挂钩网格视图的beforerefresh事件来销毁所有的FormPanel实例。但是,这不适用于缓冲的网格视图,这也意味着任何类型的视图刷新都会杀死您在FormPanels中执行的任何操作。