3

我有一个带有一些记录的网格面板。但是这个网格面板的元素是子元素。因此,当我在网格中创建新记录或更新现有记录时,我想将额外的参数作为父 ID 发送到服务器端(父是表的一个)。我正在使用直接商店。

我知道,有远程过滤器,但似乎它们仅在读取操作时发送,而不是在创建或更新时发送。

4

3 回答 3

4

如果要发送额外参数,请使用代理上的 extraParams 属性

http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.proxy.Server-cfg-extraParams

于 2012-06-30T20:51:48.890 回答
2

发送 extraParams 不仅限于读取操作(创建、销毁、更新)

我扩展了

Ext.data.proxy.Direct

并覆盖

请求

它就像一个魅力。

使用 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'

于 2016-01-19T16:02:10.723 回答
0

额外参数

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 
                  ...
                  }
            });
于 2012-12-04T06:18:35.547 回答