Extjs7 store使用remoteFilter時自定義過濾條件編碼格式

                    小編:管理員 296閱讀 2022.09.06

                    版本

                    7.4.0

                    方法

                    框架默認的遠程過濾參數編碼函數在proxy類中定義,因此需要自定義Proxy,覆蓋encodeFilters方法

                    Ext.define('My.data.proxy.Ajax', {
                        extend: 'Ext.data.proxy.Ajax',
                        alias: 'proxy.my-ajax',
                        filterParam:'filter_options',
                        encodeFilters: function (filters) {
                    		// 根據filters構造過濾參數
                    		return ;
                        }
                    });
                    復制源碼參考
                    • ext-core/data/proxy/Server.js
                    ...
                    getParams: function(operation) {
                        ...
                        if (filterParam && filters && filters.length > 0) {
                            params[filterParam] = me.encodeFilters(filters);
                        }
                    
                        return params;
                    },
                    ...
                    encodeFilters: function(filters) {
                        var out = [],
                            length = filters.length,
                            encode, i;
                    
                        for (i = 0; i < length; i++) {
                            encode |= filters[i].serializeTo(out);
                        }
                    
                        // If any Filters return Objects encapsulating their full state, then the parameters
                        // needs JSON encoding.
                        return encode ? this.applyEncoding(out) : out;
                    },
                    ...
                    applyEncoding: function(value) {
                        return Ext.encode(value);
                    },
                    ...
                    復制
                    關聯標簽:
                    无码精品人妻一区二区三区软件