2013-06-08 8 views
7

In negozio, c'è un beforeload evento:In Extjs4.1, come aggiungere parametri addizionali prima della sincronizzazione di un negozio?

beforeload(Ext.data.Store store, Ext.data.Operation operation, Object eOpts) 

con l'ascolto di questo evento, posso aggiungere il mio param aggiuntivo per il funzionamento quando faccio un'azione di query, in questo modo:

store.on('beforeload', function(store, operation) { 
    operation.params = Ext.applyIf({ 
     myParam1: 'param1', 
     myParam2: 'param2' 
    }, operation.params); 
}); 

ho anche è necessario aggiungere i miei parametri aggiuntivi quando creo, aggiorno e distruggo l'azione. Tuttavia, l'evento di sincronizzazione non passa l'operazione o lo store:

beforesync(Object options, Object eOpts) 

c'è qualche altro modo?

+0

Si sta utilizzando autosync? I parametri extra necessari per passare dinamici? –

+0

Io chiamo store.sync() invece di usare autoSync. Significa che devo modificare parametri extra ogni volta prima di eseguire una query o un'azione CDU? @AmitAviv –

+2

A seconda del contesto di ciò che effettivamente causa la modifica nei parametri aggiuntivi, potresti voler usare 'setExtraParam' quando la modifica si verifica nell'interfaccia utente. Supponiamo che ci sia una casella di controllo da qualche parte che sta causando il cambiamento, puoi ascoltare l'evento change e impostare lì extraParam. –

risposta

2

Usa store.getProxy().setExtraParams({ param: 'value', so:'on' }); speranza funzionerà bene:. D

+0

il problema è che extraParams viene inviato solo su richieste 'read' non su create, update, destroy request se si sta definendo un'API nello store. –

1

Usa

store.getProxy() = extraParams.paramName1 paramValue1; store.getProxy(). ExtraParams.paramName2 = paramValue2;

0

ExtraParam ha effetto solo quando si chiama la read api. Non funziona per creare, aggiornare, eliminare

grid.store.getProxy().setExtraParam('paramA','XXX'); 

Ho provato un altro modo.

grid.store.proxy.api.update = url + "?paramA=XXX"; //set before call sync() 

Java può ottenere il param da

request.getParameter("paramA"); 
Problemi correlati