Sencha-Touch:刷新列表:商店 [英] Sencha-touch : refresh list : store

查看:14
本文介绍了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

我全部尝试的内容:

  1. myList.renh(),
  2. myStore.load();
  3. 清除存储区,然后加载
  4. 删除列表并再次添加,然后强制重新呈现(使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆