Sencha-Touch:刷新列表:商店 [英] Sencha-touch : refresh list : store
本文介绍了Sencha-Touch:刷新列表:商店的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在Ext中有一个新闻列表。面板中的List
prj.views.NewsList = Ext.extend(Ext.Panel, {
layout: 'card',
initComponent: function() {
this.list = new Ext.List({
itemTpl: '......',
loadingText: false,
store: new Ext.data.Store({
model: 'News',
autoLoad: true,
proxy: {
type: 'ajax',
url: '.....',
reader: {
type: 'json',
//root: ''
}
},
listeners: {
load: { fn: this.initializeData, scope: this }
}
})
});
this.list.on('render', function(){
this.list.store.load();
this.list.el.mask('<span class="top"></span><span class="right"></span><span class="bottom"></span><span class="left"></span>', 'x-spinner', false);
}, this);
this.listpanel = new Ext.Panel({
items: this.list,
layout: 'fit',
listeners: {
activate: { fn: function(){
this.list.getSelectionModel().deselectAll();
Ext.repaint();
}, scope: this }
}
})
this.items = this.listpanel;
prj.views.NewsList.superclass.initComponent.call(this);
},
});
Ext.reg('newsList', prj.views.NewsList);
在dockedItem的工具栏设置中,我有一个用于刷新列表的图标。
items: [
{
iconCls: 'refresh',
handler: function() {
prj.view.NewsList.list.store.read()
}
},
]
但prj.view.NewsList返回未定义!如何才能让列表刷新应用商店?
推荐答案
我也遇到了类似的问题。 我正在发布我的答案,希望这能帮助某人。
我在中有一个搜索栏来搜索数据。(我的搜索在服务器上进行,结果将根据我的GET请求发回给我。
基本上我只需更改我的商店的URL
我全部尝试的内容:
- myList.renh(),
- myStore.load();
- 清除存储区,然后加载
- 删除列表并再次添加,然后强制重新呈现(使用doLayout())
没有效果...
只需添加一行即可解决我的问题
function handleSearch(strSearchText)
{
//myStore.loadData([],false); /tried to clear the store and reloading it
if(strSearchText !='')
{
searchString = '?search='+strSearchText;
searchURL = searchURLBasic+ searchString;
}else{
searchURL = searchURLBasic;
}
console.log('search URL: ' + searchURL);
myStore.proxy.url =searchURL; // this was one magical line of code that saved my life
myStore.load();
}
非常感谢您的支持。
这篇关于Sencha-Touch:刷新列表:商店的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文