将 FormPanel 放入 RowExpander?

Posted

技术标签:

【中文标题】将 FormPanel 放入 RowExpander?【英文标题】:Putting a FormPanel inside a RowExpander? 【发布时间】:2011-05-31 20:13:35 【问题描述】:

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

也就是说,我有这个:

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

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

【问题讨论】:

【参考方案1】:

搞笑的黑客:

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于将 FormPanel 放入 RowExpander?的主要内容,如果未能解决你的问题,请参考以下文章

sencha touch:如何构建可编辑的 FormPanel

Ext.Net学习笔记20:Ext.Net FormPanel 复杂用法

Ext.Net学习笔记19:Ext.Net FormPanel 简单用法

使用 Sencha Touch 2 FormPanel 定位容器

GWT - 从 FormPanel 上传文件后返回对象?

ExtJS:如何使窗口足够大以容纳 FormPanel?