いくつかのレコードがあるグリッドパネルがあります。ただし、このグリッドパネルの要素は子です。したがって、グリッドで新しいレコードを作成するとき、または既存のレコードを更新するときは、追加のパラメーターを親IDとしてサーバー側に送信します(親はテーブルの1つです)。直販を利用しています。
リモートフィルターがあることは知っていますが、作成や更新ではなく、読み取りアクションでのみ送信されたようです。
追加のパラメータを送信する場合は、プロキシのextraParamsプロパティを使用します
http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.proxy.Server-cfg-extraParams
extraParamsを送信するには、常に読み取り操作(作成、破棄、更新)だけではありません。
伸ばした
Ext.data.proxy.Direct
とオーバーライド
doRequest
それは魅力のように機能しました。
ExtJs4.1.1の使用
元のコードは次のとおりです。
if (operation.action == 'read') {
// We need to pass params
method = fn.directCfg.method;
args = method.getArgs(params, me.paramOrder, me.paramsAsHash);
} else {
args.push(request.jsonData);
}
私はそれを次のように変更しました:
method = fn.directCfg.method;
args = method.getArgs(params, me.paramOrder, me.paramsAsHash);
if(operation.action !== 'read'){
args.push(request.jsonData);
}
ここからアイデアを取り入れましたhttps://www.sencha.com/forum/showthread.php?282879-ExtraParams-Store-Create
注意:ストアには、作成したクラスのエイリアスに配置したもののプロキシがあります。エイリアスは次のようalias : 'proxy.mycompanydirect'
になり、ストアのプロキシタイプは次のようになります'mycompanydirect'
extraParams:
Object4すべてのリクエストに含まれる追加のパラメーター。同じ名前のパラメータを持つ個々のリクエストは、競合している場合、これらのパラメータを上書きします。
var store = Ext.create('Ext.data.Store', {
// destroy the store if the grid is destroyed
autoDestroy: true,
model: 'Plant',
proxy: {
extraParams: {name: 'dfds'}, // to send extra parmas
...
}
});