Javascript Extjs保存动态选项卡并在页面加载时重新呈现它们,这可能吗?
我正在使用Extjs动态添加新选项卡。。但是,有没有一种方法可以将新添加的选项卡保存在某个位置(可能在数据库中),因为每当用户重新访问页面时,我必须动态呈现用户创建的所有选项卡 我可以制作标签,将标签的状态保存在cookie中。。但我知道,为了保存新创建的选项卡的状态,我必须首先将选项卡的Html(?)片段保存在某个地方 这是我的密码:Javascript Extjs保存动态选项卡并在页面加载时重新呈现它们,这可能吗?,javascript,extjs,tabs,state,state-saving,Javascript,Extjs,Tabs,State,State Saving,我正在使用Extjs动态添加新选项卡。。但是,有没有一种方法可以将新添加的选项卡保存在某个位置(可能在数据库中),因为每当用户重新访问页面时,我必须动态呈现用户创建的所有选项卡 我可以制作标签,将标签的状态保存在cookie中。。但我知道,为了保存新创建的选项卡的状态,我必须首先将选项卡的Html(?)片段保存在某个地方 这是我的密码: var tab; var tabIndex = 0; var tabArray = []; Ext.application({ launch: funct
var tab;
var tabIndex = 0;
var tabArray = [];
Ext.application({
launch: function() {
Ext.state.Manager.setProvider(new Ext.state.CookieProvider({
expires: new Date(new Date().getTime() + (1000 * 60 * 60 * 24 * 7))
}));
Ext.create('Ext.container.Viewport', {
layout: 'absolute',
items: [{
x: 50,
y: 50,
width: 300,
height: 300,
xtype: 'tabpanel',
stateful: true,
stateId: 'tp1',
stateEvents: ['tabchange'],
getState: function() {
return {
activeTab: this.items.findIndex('id',this.getActiveTab().id)
};
},
applyState: function(s) {
this.setActiveTab(s.activeTab);
},
items: [{
id: 'c0',
title: 'Tab One'
}, {
id: 'c1',
title: 'Tab Two'
}, {
id: 'c2',
title: 'Tab Three'
}],
bbar: [
{
text: 'Add Tab',
//region: 'south',
xtype: 'button',
handler: function () {
var tabs = this.up('tabpanel');
tab = tabs.add({
title: 'Tab ',
closable:true,
xtype:'panel',
width: '100%',
height: '100%',
items: []
}).show();
}
}
]
}]
});
}
});
我是不是在做一些不切实际的事情?或者,是否可以存储新创建的选项卡,并在页面加载时使用新创建的选项卡呈现整个选项卡面板
我很抱歉问了这么广泛的问题:)
谢谢。我过去也做过类似的事情。这就是我们的设计方法虽然含糊不清,但我们还是做到了 当您动态创建一个选项卡并向其中添加项目(面板/输入字段)并更改这些项目的值(比如在文本框中输入文本,选中复选框)时,当您最终点击save时,我们将以JSON格式提取所有数据 您需要根据需要保存的值进行自定义构建,例如项的类型、值、其子结构等等 然后,当需要重新呈现页面时,使用JSON构建页面。构建此解决方案并不容易。但是,一旦您完成了,它将可用于所有选项卡,无论动态性如何
最后,它肯定是可能的,我过去也做过类似的事情。这就是我们的设计方法虽然含糊不清,但我们还是做到了 当您动态创建一个选项卡并向其中添加项目(面板/输入字段)并更改这些项目的值(比如在文本框中输入文本,选中复选框)时,当您最终点击save时,我们将以JSON格式提取所有数据 您需要根据需要保存的值进行自定义构建,例如项的类型、值、其子结构等等 然后,当需要重新呈现页面时,使用JSON构建页面。构建此解决方案并不容易。但是,一旦您完成了,它将可用于所有选项卡,无论动态性如何
最后,它肯定是可能的,你不想有一个HTML片段,知道把项目放在哪里吗?你真的不能直接呈现Json,对吗?我的目标是创建选项卡,每个选项卡都有一个门户面板,portalpanel内的user add的portlet基本上填充了每个选项卡。我的应用程序必须记住他有多少个标签以及动态更新的portlet的数量和类型:|对我来说似乎有点不切实际,但是有可能我相信
如果你能提供一个小片段作为我上面代码的扩展来存储Json东西,我将不胜感激。我想说的是,我们需要基于Json重建ExtJs组件。我们不能将JSON呈现为这样,提取JSON也不是一件即时的事情。您需要手动构造JSON。我手头没有代码。您需要做的是迭代选项卡的子项并手动创建JSONAlright。。我将尝试通过迭代子组件来构造Json,并将它们保存在每个用户的数据库中:)希望可以。。谢谢你还是不想有一个HTML代码片段,知道把项目放在哪里吗?你真的不能直接呈现Json,对吗?我的目标是创建选项卡,每个选项卡都有一个门户面板,portalpanel内的user add的portlet基本上填充了每个选项卡。我的应用程序必须记住他有多少个标签以及动态更新的portlet的数量和类型:|对我来说似乎有点不切实际,但是有可能我相信如果你能提供一个小片段作为我上面代码的扩展来存储Json东西,我将不胜感激。我想说的是,我们需要基于Json重建ExtJs组件。我们不能将JSON呈现为这样,提取JSON也不是一件即时的事情。您需要手动构造JSON。我手头没有代码。您需要做的是迭代选项卡的子项并手动创建JSONAlright。。我将尝试通过迭代子组件来构造Json,并将它们保存在每个用户的数据库中:)希望可以。。谢谢