gpt4 book ai didi

javascript - 重新渲染期间组件丢失,如何重新附加?

转载 作者:行者123 更新时间:2023-12-03 07:53:06 24 4
gpt4 key购买 nike

我正在将组件渲染到网格 rowExpander 插件 rowBodyTpl 中:

plugins: [{
ptype: 'rowexpander',
rowBodyTpl : [
'<div id="contact-row-{Id}"> </div>'
]
}],


var row = 'contact-row-' + record.get('Id'),
grid = Ext.getCmp(gridId),
if(!grid) me.createSubGrid(record,gridId).render(row);

这很好用。但是,当网格收到具有某些 moddedFields 的记录的 update 事件时,该记录的 rowExpander 仅使用 rowTpl 重新呈现,并且内部网格在某处悬空。我可以使用 Ext.getCmp 访问网格,并且 grid.rendered 为 true,但未显示。所以我想我必须在重新渲染行后重新附加网格。

我想我可以附加到更新事件,并使用以下命令找出是否在没有子网格的情况下重新渲染了 rowTpl

if(!grid.container.contains(grid.el))

但是有没有办法把网格放回dom中呢?

我已经尝试过

grid.container.insertFirst(grid.el);

但这不起作用。元素已插入,但网格未显示。

有什么想法吗?

最佳答案

您的做法会导致内存泄漏(因为重新渲染网格时您的组件不会被破坏)。

我建议检查:组件模板( http://skirtlesden.com/ux/ctemplate ),或者如果您尝试渲染嵌套网格,有几次尝试构建正确的东西,我认为一个有效的方法如下: http://blogs.walkingtree.in/2015/06/30/nested-grid-in-sencha-ext-js/

关于javascript - 重新渲染期间组件丢失,如何重新附加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34923973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com