2011-06-18 10 views
1

は、今私は私がExt.data.Store用のparam名pagestartlimit、およびdirを変更することができないような問題に実行していますよ。ExtJSの4:変更ストアのparamの名前

私はこれを行うことができますExtJSの3で

paramNames : 
{ 
    start : 'startIndex', 
    limit : 'pageSize', 
    sort : 'sortCol', 
    dir : 'sortDir' 
} 

私はExtJSの4 Ext.data.Storeにこの設定を追加しようとしたが '開始'、 '制限'、 'ソート'、および「DIR 'はデフォルトのパラメータ名として表示されます。サーバー側の機能にこれらのparam名が必要なので、これを変更できるようにする必要があります。これはまた、サーバー側のリソースが期待しているものとparam名が一致しないため、ページングとリモートソートが機能しなくなります。

ExtJS 3のようにこれらのパラメータ名を変更するには、ExtJS 4に新しい方法がありますか?

答えて

2

使用して、このコードを参照して、プロキシを見てみましょう:

proxy: { 
    type: 'ajax', 
    url: '/myurl', 
    method: 'GET', 
    **extraParams: { myKeyword: 'abcd' },** 
    reader: { 
     type: 'json', 
     root: 'rows' 
    } 
} 

今、あなたが方法を以下にabcdからxyzにごmyKeyword値を変更することができます。

gridDataStore.proxy.extraParams.keyword='xyz'; 
gridDataStore.load(); 

これにより、パラメータの値が設定され、ストアがリロードされます。

2

を動的にちょうどあなたがこれを行うことができ、店舗のload前にパラメータを変更するには:

/* set an additional parameter before loading, not nice but effective */ 
    var p = store.getProxy(); 
    p.extraParams.searchSomething = search; 
    p.extraParams.somethingelse = 'This works too'; 

    store.load({ 
     scope : this, 
     callback: function() { 
      // do something useful here with the results 
     } 
    }); 
+0

ありがとうございます。私は 'コールバック'を探しました。 – VMAtm

0

キーは、名前を変更し、Ext.data.Proxyオブジェクトに移動されました。ここではデフォルトのGrailsのパラメータ名を使用するようにExtJSのを伝える簡単な例を示します。

Ext.create('Ext.data.Store', { 
    // Other store properties removed for brevity 
    proxy: { 
     // Other proxy properties removed for brevity 
     startParam: "offset", 
     limitParam: "max", 
     sortParam: "sort", 
     directionParam: "order", 
     simpleSortMode: true 
    } 
}); 

の各パラメータは、個別のリクエストパラメータとしてサーバーに送信されるように、私もsimpleSortModeを設定します。

関連する問題