首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sencha-touch :刷新列表: store

Sencha-touch :刷新列表: store
EN

Stack Overflow用户
提问于 2011-05-24 22:41:39
回答 3查看 30K关注 0票数 6

我在面板内的Ext.List中有一个新闻列表

代码语言:javascript
复制
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的工具栏设置中,我有一个用于刷新列表的图标。

代码语言:javascript
复制
items: [
    {
        iconCls: 'refresh',                             
        handler: function() {                                   
        prj.view.NewsList.list.store.read()
        }   
    },
]

但是prj.view.NewsList返回未定义!我怎样才能让列表刷新商店?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-14 18:53:11

就连我也面临着类似的问题。我正在张贴我的答案,希望这能帮助一些人。

我有一个搜索栏用来搜索数据。(我的搜索是在服务器上进行的,结果将根据我的GET请求发回给我。

基本上,我只需要更改我的商店的URL

我尝试了什么:

  1. myList.refresh(),
  2. myStore.load();
  3. 清除存储,然后加载它
  4. 删除列表并再次添加,并强制它重新呈现(使用doLayout())

什么都不管用。

只需添加一行就解决了我的问题

代码语言:javascript
复制
    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();
}

THanks SO以获取支持。

票数 5
EN

Stack Overflow用户

发布于 2011-05-25 14:47:25

在您的刷新按钮上呼叫此线路

代码语言:javascript
复制
Ext.StoreMgr.get('newsStore').load()

当您在存储上调用load()方法时,该列表将自动刷新。商店链接到列表。

示例:

代码语言:javascript
复制
items: [
    {
        iconCls: 'refresh',     
        handler: function(event, btn) {
            Ext.StoreMgr.get('newsStore').load();
        }           
    },
]
票数 14
EN

Stack Overflow用户

发布于 2011-07-10 02:54:43

我在换店的时候就这么做了,效果很好。

代码语言:javascript
复制
var yourbutton = new Ext.Panel({
    listeners: {
        afterrender: function(c){
            c.el.on('click', function(){
                YourList.update();
                YourList.bindStore(newStore);
            });
        }
    }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6112237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档