Marek Sadowski

Marek Sadowski Asystent kierownika
projektu, Wopr

Temat: Przesiadka na ExtJS 4 i problem

Opis problemu:
Mamy grid a w nim w tbar : combobox z wyborem wartosci od których zależy zawartość grid
w bbar mamy Ext.PagingToolbar

i teraz się zaczyna ;)

wybieramy w combobox wartosc - grid się przeladowuje jest ok
wybieramy strone - grid się przeladowuje i wyswietla rekordy np.15-30

zmieniamy wartosc combobox - grid się przeladowuje - powinien z rekordami 0-15 a wyswietla 15-30.

Jak to naprawic bo juz zglupialem.
Michał Jarosz

Michał Jarosz Frontend Developer &
Team Leader

Temat: Przesiadka na ExtJS 4 i problem

Musisz jeszcze kursor pagingbara przestawić. po zmianie wartości comoboksa. W 3.x trzeba było trochę się z tym pogimnastykować. Nie wiem jak w 4.

P.S. Albo wpiąć się do store i podmienić parametr start przed załadowaniem.Michał Jarosz edytował(a) ten post dnia 30.04.11 o godzinie 14:39
Marek Sadowski

Marek Sadowski Asystent kierownika
projektu, Wopr

Temat: Przesiadka na ExtJS 4 i problem

w 3.x właśnie nie było problemu żadnego
a w 4.0 na przymus wcisneli full niepotrzebnego badziewia do Store.
Grzegorz K.

Grzegorz K. Angular, JavaScript,
Frontend, UI

Temat: Przesiadka na ExtJS 4 i problem

A robisz store load/reload - czy może nowe Proxy ?

Temat: Przesiadka na ExtJS 4 i problem

http://www.sencha.com/blog/ext-js-3-to-4-migration/

ale ja bym jeszcze poczekał z przesiadką na 4.0 ;) co najmniej do pierwszych poprawek... sam zgłosiłem kilkanaście błędów.

Temat: Przesiadka na ExtJS 4 i problem

Byl tam dobry migration-pack z wersji 3.x na 4.0
Marek Sadowski

Marek Sadowski Asystent kierownika
projektu, Wopr

Temat: Przesiadka na ExtJS 4 i problem

Grzegorz K.:
A robisz store load/reload - czy może nowe Proxy ?


reload wogóle nie działa ;)
Grzegorz K.

Grzegorz K. Angular, JavaScript,
Frontend, UI

Temat: Przesiadka na ExtJS 4 i problem

Wrzuć kodu.

konto usunięte

Temat: Przesiadka na ExtJS 4 i problem

Twój komponent z tbara nie jest zgrany ze stronicowanie. Najprościej to osiągnąć poprzez dodawanie parametrów do magazynu.

W extjs 4 robisz to tak:
Ext.data.StoreManager.lookup('tutaj storeId').proxy.extraParams.nazwa_parametru = '20';

no i do komponentu dodajesz listener, który w onchange czy select zmienia/zapisuje extraParams w magazynie.
Al Legro

Al Legro Właściciel, Soft
Bits

Temat: Przesiadka na ExtJS 4 i problem

Myślę, że rozwiązałem problem, zajęło mi to dwa dni i trochę to wygląda prymitywnie. Przyznaję, że coś z tą paginacją popsuło się w nowej wersji Ext.

Ja to robię tak:
1) dodaję listener na zdarzenie Change "pola filtrującego"
2) W funkcji zdarzenia wykonuję następujące instrukcje:

2.1. Store.proxy.extraParams['query'] = object.getValue();
2.2. PagingToolbar.moveFirst();
2.3. Store.load();

Kluczowa jest instrukcja 2.2., która ustawia parametr 'start' obiektu proxy na 1. Bez wykonania instrukcji proxy zrobi zapytanie z parametrem start ustawionym na ostatnią wartość paginatora, co w przypadku zmiany filtra jest niepoprawne i może wywrócić zapytanie.
Andrzej Siedy

Andrzej Siedy Analityk systemów
GIS, Cartomatic

Temat: Przesiadka na ExtJS 4 i problem

Witam...

Troche zmodyfikowany konstruktor Ext.form.field.ComboBox

constructor: function(config){
this.width = 350;
this.displayField = 'name';
this.valueField = 'id'; this.queryMode = 'remote';
this.triggerAction = 'all';
this.pageSize = 50;
this.store = Ext.create('Ext.data.Store', {
model: "store model",
proxy: "proxy definition",
pageSize: 10
});
this.callParent([config]);
this.addEvents('rowselected');
//wire up the internal event listener
this.store.on('beforeload', this.checkSearchInput, this);
this.on('select', this.rowSelected, this);
this.on('change', function(cmbBox, newValue, oldValue, options){
cmbBox.store.proxy.extraParams['query'] = newValue;
});
this.store.on('load', function(store, records, successful, operation, options){
store.load({params:{limit:50}});
});
}

wazne jest jak sugerowal "Al Legro" zeby dodac extra linijke na combobox.on('change'....

oraz na combo.store.on('load'..... - extra param

Pozdrawiam
Andrzej Siedy

Andrzej Siedy Analityk systemów
GIS, Cartomatic

Temat: Przesiadka na ExtJS 4 i problem

Sorry... troche przekombinowalem poprzednio
paging dziala o ile w definicji store'a dla ComboBox
dodamy extra config parameter:
"params:{limit:50}"

constructor: function() {
....
....
this.store = Ext.create('Ext.data.Store', {
model: 'store model',
proxy: {
type: 'jsonp',
url: 'URL',
callbackKey: 'jsonp',
reader: {
type : 'json',
root : "values",
totalProperty : 'total'
}
},
pageSize: 10,
params:{limit:50}
});

this.on('change', function(cmbBox, newValue, oldValue, options){
cmbBox.store.proxy.extraParams['query'] = newValue;
});

this.callParent([config]);
}

Następna dyskusja:

extjs - problem z formatką




Wyślij zaproszenie do