我有一个包含一些记录的网格面板。但是这个网格面板的元素是孩子。因此,当我在网格中创建新记录或更新现有记录时,我想将另外的参数发送到服务器端作为父ID(父表是表的父表)。我正在使用直营店。
我知道,有远程过滤器,但似乎它们只是在读取操作时发送,而不是在创建或更新时发送。
答案 0 :(得分:4)
如果要发送额外参数,请使用代理
上的extraParams属性http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.proxy.Server-cfg-extraParams
答案 1 :(得分:2)
发送extraParams不仅仅是阅读操作(创建,破坏,更新)
我延长了
Ext.data.proxy.Direct
并覆盖
doRequest
它就像一个魅力。
使用ExtJs 4.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'
答案 2 :(得分:0)
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
...
}
});