Внутреннее окно EXTJS GridPanel не загружает обновленные данные из хранилища при повторном открытии окна - PullRequest
0 голосов
/ 26 августа 2011

У меня есть форма EXT, которая открывает окно, содержащее GridPanel, где хранилище данных необходимо обновлять каждый раз при отправке формы.Сетка отображает список файлов, загруженных с клиентского компьютера.Все это работает нормально, пока я не закрою окно и не выберу другую группу файлов.Проблема, с которой я сталкиваюсь, заключается в том, что когда окно, содержащее сетку, закрывается, а затем вновь открывается, оно отображает первый загруженный ранее набор файлов вместо нового списка файлов, отправленных из формы.Надеюсь, это имеет смысл.

Я пробовал grid.getView (). Refresh (), но это не обновляет сетку.Ниже мой код для окна, формы, сетки и магазина JSON.Если бы кто-то видел это раньше, я был бы признателен за некоторые советы.(извиняюсь за форматирование кода ... было много проблем с его чтением в этом текстовом поле)

//window that holds grid   
SPST.window.POGCheckInWindow = Ext.extend(SPST.window.WindowBaseCls, {
    id: 'POGCheckInWindow'  
    ,initComponent:function() {  
    var config = {  
            title: 'Check In POG Files'
            ,width      : 1000  
            ,height     : 500  
            ,maximizable: false  
            ,shadow : false  
            ,closeable: true  
            ,closeAction: 'hide'  
       ,items: [{  
       xtype   : 'checkin_results_grid'  
    ,id     : 'POGCheckInGrid'  
    ,height : 450  
             ,width  : 990  
        ,frame  : true }   
]};  
Ext.apply(this, Ext.apply(this.initialConfig, config));   
    SPST.window.POGCheckInWindow.superclass.initComponent.apply(this, arguments);  
    }    
});
Ext.reg('pog_checkin_window',SPST.window.POGCheckInWindow);  



//function to submit the form, load the store and open the window containing the gridpanel  
checkin:function() {  
    if (this.getForm().isValid()){  
        this.getForm().submit({  
        url: 'components/POG.cfc?method=uploadPOGTemp' + '&dsn=' + SPST_dsn  
        ,method: 'GET'  
        ,scope:this  
        ,success: function(form, action){  
var chkinwin = new SPST.window.POGCheckInWindow();  

Ext.getCmp('POGCheckInGrid').getStore().load({params:  {dsn: SPST_dsn, 
pogfiles: action.result.pogfiles, project_id: action.result.project_id}  
,callback: function(rec, options, success){      
Ext.getCmp('POGCheckInGrid').getView().refresh();  
            }  
            });  
            chkinwin.show();  
        }
        ,failure:this.showError  
        ,waitMsg:'Uploading files...'
        });  
    }  
}  



// create the data store for grid
    var chkstore = new Ext.data.JsonStore({  
    // JsonReader configuration  
    root           : 'jsonlist' 
    ,fields        : chkfields  
    ,id    : 'chkstoreid'  
    // JsonStore configuration  
    ,autoLoad       : true  
    ,remoteSort     : true  
    ,autoDestroy: true
    ,sortInfo: {  
             field: 'POGNAME',  
             direction: 'ASC'  
        }
    ,url   : 'components/POG.cfc?method=getPOGTempFiles' + '&dsn=' + SPST_dsn  

});


//grid that loads inside ext window  
SPST.grid.POGCheckInGrid = Ext.extend(SPST.grid.GridPanelBaseCls, {  
view: new Ext.grid.GridView({  
    getRowClass: function(rec, idx, rowPrms, ds)  
    {  
    return rec.data.VERSION_DSC === 'INVALID VERSION#' ? 'invalid-cls' : '';  
    }  
}),  
initComponent : function() {    
var config = {  
    colModel   : chkcolModel  
    ,selModel   : chkselModel  
    ,store      : chkstore  
    ,autoDestroy: true  
    ,xtype      : 'checkin_results_grid'  
    ,buttons: [  
        {  
        text: 'Upload'  
        ,handler: this.loadPOGCheckin  
        ,scope  : this  
        },  
        {  
        text: 'Cancel'  
        ,handler: this.checkinwindowclose  
        ,scope  : this  
        }
]  
}  
Ext.apply(this, Ext.apply(this.initialConfig, config));  
SPST.grid.POGCheckInGrid.superclass.initComponent.apply(this, arguments);  
}  

,onRender  : function() {  
this.getBottomToolbar().bindStore(chkstore);  
SPST.grid.POGCheckInGrid.superclass.onRender.apply(this, arguments);  
}

1 Ответ

2 голосов
/ 27 августа 2011

Из того, что я понял, вам не нужно только refresh просмотр, но также reload store в соответствии с другим набором файлов, которые вы выбрали ..

Итак, вместо того, чтобы делать

grid.getView().refresh() use grid.getStore().reload([new-options-if-required]); .. Это перезагрузит хранилище в соответствии с переданными параметрами, если таковые имеются, или перезагрузит хранилище в соответствии с последними параметрами загрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...