ExtJS:HTMLEditor失去了Accordion重新扩展的内容

时间:2013-12-17 23:34:23

标签: javascript extjs

我有一个典型设置的手风琴面板。在每个面板中,曾经有textarea,一切正常。

现在我用textarea替换了每个htmleditor。当我折叠面板并重新展开它时,htmleditor的内容将丢失。当我使用textarea时没有发生这种情况。如何解决这个问题?

编辑:同样,当重新展开时,htmleditor会冻结,我无法输入任何内容。但按钮工作(粗体,插入链接,切换到源编辑等)。更奇怪的是,当我切换“切换到源”按钮两次时,内容会以不同的字体重新出现!

使用Accordion

myDataStore.load({params: ...}, callback: onLoadSuccess);
......

onLoadSuccess: function() {
    // for each data item, create a new panel and add it to myListPanel
    for (var i = 0; i < myDataStore.getTotalCount(); i++) {
        var dataItem = myDataStore.getAt(i);
        var newFormPanel = new Ext.FormPanel({
            labelAlign: 'top',
            items : [{
                xtype: 'htmleditor',
                fieldLabel: 'Content',
                autoScroll: true,
                enableFont: false,
                enableLists: false,
                value: dataItem.get('content');
            }],
            buttons: [{...}]
        });
        // add this panel to the accordion
        myListPanel.add({
            title: 'Another panel',
            items: [newFormPanel]
        });
    }
    myListPanel.doLayout();
}

当前Accordion配置:

var myListPanel = new Ext.Panel({
    autoHeight : true,
    autoWidth: true,
    autoScroll : true,
    layout : 'accordion',
    layoutConfig : {
        titleCollapse: true,
        animate: true,
        fill : false,
        autoWidth: true,
        hideCollapseTool: true,
    },
});

1 个答案:

答案 0 :(得分:0)

对我而言,htmleditor在折叠和展开时不会丢失内容。

但是,一种解决方案是监听collapse事件并将当前编辑器内容存储到属性中。 在expand事件中,您将其再次放入编辑器中。