如何使用extjs编辑有效负载请求

时间:2013-05-22 13:01:51

标签: extjs

我有过滤器:

store.filter([Ext.create('Ext.util.Filter', {
                        property : "firstName",
                        value : Ext.getCmp("firstName").getValue(),
                        root : 'data'
                    }), Ext.create('Ext.util.Filter', {
                        property : "lastName",
                        value : Ext.getCmp("lastName").getValue(),
                        root : 'data'
                    }), Ext.create('Ext.util.Filter', {
                        property : "gender",
                        value : "MALE",//Ext.getCmp("gender").getValue(),
                        root : 'data'
                    }), Ext.create('Ext.util.Filter', {
                        property : "ssn",
                        value : Ext.getCmp("ssn").getValue(),
                        root : 'data'
                    }), Ext.create('Ext.util.Filter', {
                        property : "dateOfBirth",
                        value : Ext.getCmp('dateOfBirthTo').getValue(),
                        root : 'data',
                        operator : "<"
                    })]);

创建此有效负载:

{..."filter":[{"property":"firstName","value":""},{"property":"lastName","value":""},{"property":"gender","value":"MALE"},{"property":"ssn","value":""},{"property":"dateOfBirth","value":"2013-05-22T00:00:00"}]}],...}

如何更改此有效负载?我正在使用extdirectspring,它需要一些额外的参数来创建正确的过滤器。而不是{"property":"dateOfBirth","value":"2013-05-22T00:00:00"}

我需要:

{"property":"dateOfBirth","value":"2013-05-22T00:00:00", "type":"date","operator":"lte"}

1 个答案:

答案 0 :(得分:1)

没有尝试过,但只是快速浏览一下源代码,看来你可以覆盖Ext.data.proxy.Server的encodeFilters()方法。以下是目前的情况:

encodeFilters: function(filters) {
    var min = [],
        length = filters.length,
        i = 0;

    for (; i < length; i++) {
        min[i] = {
            property: filters[i].property,
            value   : filters[i].value,
            // add your custom params here
        };
    }
    return this.applyEncoding(min);
}

换句话说,当您创建过滤器时,我相信您可以将自定义配置添加到这些过滤器,然后使用覆盖确保在请求时包含它们(如果它们存在)。