获取当前商店 - Ext JS

时间:2013-10-03 13:18:34

标签: javascript extjs store

早上好!

我有一个grid,只需点击一下按钮即可更改商店。

我怎么能获取我的网格的当前 store,无论是哪个加载?

2 个答案:

答案 0 :(得分:2)

通常grid.getStore()会为您提供附加到网格的商店

答案 1 :(得分:1)

我怎样才能获得网格的当前存储?

--->您可以使用grid.getStore()或直接使用grid.store获取当前商店。

无论加载哪一个?

---->您将只有一个商店分配给网格,而您将同一商店分配给Paging Toolbar

这是来自sencha的例子:

 Ext.onReady(function () {
    Ext.tip.QuickTipManager.init();
    Ext.define('ForumThread', {
        extend : 'Ext.data.Model',
        fields : ['title', 'forumtitle', 'forumid', 'username', {
                name : 'replycount',
                type : 'int'
            }, {
                name : 'lastpost',
                mapping : 'lastpost',
                type : 'date',
                dateFormat : 'timestamp'
            }, 'lastposter', 'excerpt', 'threadid'],
        idProperty : 'threadid'
    });
    // ***** create the Data Store, assign variable to grid and paging toolbar ***** 
    var store = Ext.create('Ext.data.Store', {
            pageSize : 50,
            model : 'ForumThread',
            remoteSort : true,
            proxy : {
                // load using script tags for cross domain, if the data in on the same domain as
                // this page, an HttpProxy would be better type: 'jsonp', url: 'http://www.sencha.com/forum/topics-browse-remote.php',
                reader : {
                    root : 'topics',
                    totalProperty : 'totalCount'
                },
                // sends single sort as multi parameter
                simpleSortMode : true
            },
            sorters : [{
                    property : 'lastpost',
                    direction : 'DESC'
                }
            ]
        });
    // pluggable renders function
    renderTopic(value, p, record) {
        return Ext.String.format('<b><a href="http://sencha.com/forum/showthread.php?t={2}" target="_blank">{0}</a></b><a href="http://sencha.com/forum/forumdisplay.php?f={3}" target="_blank">{1} Forum</a>', value, record.data.forumtitle, record.getId(), record.data.forumid);
    }
    function renderLast(value, p, r) {
        return Ext.String.format('{0}<br/>by {1}', Ext.Date.dateFormat(value, 'M j, Y, g:i a'), r.get('lastposter'));
    }
    var pluginExpanded = true;
    var grid = Ext.create('Ext.grid.Panel', {
            width : 700,
            height : 500,
            title : 'ExtJS.com - Browse Forums',
            // ***** above declared store assigned to grid, same will be assigned to paging toolbar
            store : store,
            disableSelection : true,
            loadMask : true,
            viewConfig : {
                id : 'gv',
                trackOver : false,
                stripeRows : false,
                plugins : [{
                        ptype : 'preview',
                        bodyField : 'excerpt',
                        expanded : true,
                        pluginId : 'preview'
                    }
                ]
            },
            id : 'topic',
            text : "Topic",
            dataIndex : 'title',
            flex : 1,
            renderer : renderTopic,
            sortable : false
        }, {
            text : "Author",
            dataIndex : 'username',
            width : 100,
            hidden : true,
            sortable : true
        }, {
            text : "Replies",
            dataIndex : 'replycount',
            width : 70,
            align : 'right',
            sortable : true
        }, {
            id : 'last',
            text : "Last Post",
            dataIndex : 'lastpost',
            width : 150,
            renderer : renderLast,
            sortable : true
        }
            ],
            // paging bar on the bottom bbar:
            Ext.create('Ext.PagingToolbar', {
                // *********  same store which is applied to the grid
                store : store,
                displayInfo : true,
                displayMsg : 'Displaying topics {0} - {1} of {2}',
                emptyMsg : "No topics to display",
                items : ['-', {
                        text : 'Show Preview',
                        pressed : pluginExpanded,
                        enableToggle : true,
                        toggleHandler : function (btn, pressed) {
                            var preview = Ext.getCmp('gv').getPlugin('preview');
                            preview.toggleExpanded(pressed);
                        }
                    }
                ]
            }), renderTo : 'topic-grid'
 });
 // trigger the data store load
 store.loadPage(1);