3

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

也就是说,我有这个:

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

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

4

2 回答 2

1

热闹的黑客:

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

于 2011-06-17T17:53:03.483 回答
0

我还没有尝试过,但是查看 RowExpander 的来源,似乎一种可能的方法是将 FormPanel 渲染到 RowExpander 的展开事件处理程序内的展开的行主体。

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

于 2011-06-13T19:44:09.137 回答