浏览 3733 次
锁定老帖子 主题:Panel迟加载的方法(基本解决)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-03-24
在Panel中要用到store中的数据. 请问如何才能让panel在store.load后才表现出来.谢谢 下面是部分代码 show.jsp Ext.onReady(function(){ if (newsid==''){ Ext.Msg.alert('抱歉','您所输入的文章不存在或已被删除',function(){ history.go(-1); } ); }; var store = new Ext.data.JsonStore({ url: 'ajax.jsp?rpc=getnews&id='+newsid, root: 'root', fields: ['n_ttitle','n_content',{name:'n_time', type:'date'}], autoLoad:true }); var p = new Ext.Panel({ title:'标题', //title:store.getAt(0).get('n_ttitle'),如果store还未加载就会出错 collapsible:true, width:800, html:'文章在这里\u002F' //html:store.getAt(0).get('n_content'),文章内容 }); p.render('content'); }); 后台传过来的数据 { "root": [{'n_ttitle': '文章标题 ','n_content': '文章内容','n_time': '2008-3-10 14:47:42'}] } 以下是解决方案: gdyxml2000 写道 加上如下代码:
store.on('load', function(_store, _records, _options){ var title = _records[0].get('n_ttitle'); var content = _records[0].get('n_content'); p.setTitle(title); p.html = content; p.doLayout(); }); 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-03-24
在显示Panel前,加上这句 store.load();
|
|
返回顶楼 | |
发表时间:2008-03-24
回楼上的.
store.getAt(0) has no properties title:store.getAt(0).get('n_ttitle'), 初步分析是因为初始化时,ajax请求的数据还没有加载过来,Panel 就开始加载了. 到 title:store.getAt(0).get('n_ttitle'), 这步时,store还没有加载完
|
|
返回顶楼 | |
发表时间:2008-03-24
加上如下代码:
store.on('load', function(_store, _records, _options){ var title = _records[0].get('n_ttitle'); var content = _records[0].get('n_content'); p.setTitle(title); p.html = content; p.doLayout(); }); |
|
返回顶楼 | |
发表时间:2008-03-24
gdyxml2000 写道 加上如下代码:
store.on('load', function(_store, _records, _options){ var title = _records[0].get('n_ttitle'); var content = _records[0].get('n_content'); p.setTitle(title); p.html = content; p.doLayout(); }); 感谢gdyxml2000帮助解决了问题 还有就是: p.html = content; 这个不能更新panel中的html内容. |
|
返回顶楼 | |
发表时间:2008-03-25
将
p.html = content; 换成 p.body.update(content); |
|
返回顶楼 | |