如何在EXTJS TABPANEL做延迟加载
有没有知道extjs如何延迟加载的。比如TabPanel中有十几个panel我只显示第一个后面的panel我延迟加载,也可以通过事件延迟加载,有相关的解决方案或例子也行啊...
有没有知道extjs如何延迟加载的。比如TabPanel 中有十几个panel我只显示第一个
后面的panel我延迟加载,也可以通过事件延迟加载,有相关的解决方案或例子也行啊! 展开
后面的panel我延迟加载,也可以通过事件延迟加载,有相关的解决方案或例子也行啊! 展开
3个回答
展开全部
首先创建一个TabPanel 对象 例如:main
main 里面有个首页对应其他十几个页面的按钮,点按钮添加一个tab :
var tab =main.getComponent(tabId);//得到tab组建 tabId为main的id
tab = main.add(new Ext.Panel({id:tabId,title:tabTitle,autoScroll:true,layout: 'fit',border:false,closable:true}));
main.setActiveTab(tab);
如果不用按钮 ,延迟加载可以用:
var loadmask = loadMaskModel;
loadmask.show();
loadmask.hide(); 在这个之后再main.add();
或者也可以监听 onload 事件 之后 在main.add();
如果你不嫌烦的话 在每个界面加一个定时器,
Ext.TaskMgr.start(Add);
var Add= {
run : function() {
setTimeout(
//main.add()的内容
), 10000);
},
interval : 30 * 1000 //每30秒执行一次
}
所有界面加载后记得关闭这个定时器。
或许还有跟好办法 但是这个要看你具体的要求是什么。
main 里面有个首页对应其他十几个页面的按钮,点按钮添加一个tab :
var tab =main.getComponent(tabId);//得到tab组建 tabId为main的id
tab = main.add(new Ext.Panel({id:tabId,title:tabTitle,autoScroll:true,layout: 'fit',border:false,closable:true}));
main.setActiveTab(tab);
如果不用按钮 ,延迟加载可以用:
var loadmask = loadMaskModel;
loadmask.show();
loadmask.hide(); 在这个之后再main.add();
或者也可以监听 onload 事件 之后 在main.add();
如果你不嫌烦的话 在每个界面加一个定时器,
Ext.TaskMgr.start(Add);
var Add= {
run : function() {
setTimeout(
//main.add()的内容
), 10000);
},
interval : 30 * 1000 //每30秒执行一次
}
所有界面加载后记得关闭这个定时器。
或许还有跟好办法 但是这个要看你具体的要求是什么。
展开全部
你可以利用监听器 来实现 默认只显示第一个panel 当点击其他panel时 这时被点击的panel就被渲染到TabPanel中 那么你只需要监听一下这个方法就可以了
例如:
fileManagePanel.on('render', loadfileStore);//组建被渲染的时候进行加载数据
类似这样你还可以监听这个panel的其他方法,监听器非常好用 能实现很多功能
例如:
fileManagePanel.on('render', loadfileStore);//组建被渲染的时候进行加载数据
类似这样你还可以监听这个panel的其他方法,监听器非常好用 能实现很多功能
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实,Ext.TabPanel 中已经内置了延迟加载。你只要在TabPanel 里加一个属性deferredRender : true,就可以了,此属性决定tab面板是否只有在第一次访问时才渲染(缺省为true)。我试过。加载快多了。。。。
祝你也能成功。。。。
祝你也能成功。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询