EasyUI 数据网格行过滤中 通过远程服务器去过滤 参数是如何传递过去的,服务器是如何接收的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EasyUI 数据网格行过滤中 通过远程服务器去过滤 参数是如何传递过去的,服务器是如何接收的?相关的知识,希望对你有一定的参考价值。

remoteFilter:true就会启动远程过滤,可是参数怎么样都传不过去,具体是怎么传,怎么接收的,请高手指教

参考技术A 您好,这样的:
创建并启用过滤功能。
'filters' 参数是一个过滤配置的数组。
每一项包含下列属性:
1) field:需要定义规则的域。
2) type:过滤类型,可能的值:label、text、textarea、checkbox、numberbox、validatebox、datebox、combobox、combotree。
3) options:过滤类型的选项。
4) op:过滤操作,可能的值:contains、equal、notequal、beginwith、endwith、less、lessorequal、greater、greaterorequal。
代码实例:
$('#dg').datagrid('enableFilter');
$('#dg').datagrid('enableFilter', [
field:'listprice',
type:'numberbox',
options:precision:1,
op:['equal','notequal','less','greater']
]);追问

服务器如何接收

如何像数组形式远程存储extjs一样返回数据

【中文标题】如何像数组形式远程存储extjs一样返回数据【英文标题】:how to return the data like a array form remote store extjs 【发布时间】:2017-10-19 18:43:46 【问题描述】:

我有带有过滤器的网格,在过滤器上我想显示一个项目列表。通过关注过滤器选项,我应该看到带有复选框的项目列表,当我单击复选框时,它应该发送参数。我通过 加载本地数据,我想通过加载远程数据来实现它。 dataIndex: 'adjustmentTypeDescription', text: '调整类型', stateId: 'adjustmentgrid_adjustmentTypeDescription', 筛选: 类型:'列表', 标签字段:'名称', dataIndex: 'adjustmentTypeId',

        store: Ext.create('Ext.data.ArrayStore', 
            fields: [
                name: 'id',
                type: 'int'
            , 
                name: 'name',
                type: 'string'
            ],
            data: [
                [2, 'AA'],
                [13, 'AFF'],
                [11, 'DDD'],
                [15, 'Dd'],
                [5, 'Fdsdt'],
                [6, 'Ide']
                [10, 'Return/Reject']
            ]
        )

现在我想从服务中加载这些数据。 我试过这样:

            store: Ext.create('Ext.data.ArrayStore', 
            autoLoad: false,
            model: 'ModelName',
                        /*fields: [
                                name: 'adjustmentTypeId',
                                type: 'int'
                            , 
                                name: 'description',
                                type: 'string'
                            ],*/
                        proxy: 
                            type: 'ajax',
                            url: 'servicurl',
                            timeout:120000,
                            reader: 
                                type: 'array',
                               // rootProperty: 'data',
                                rootProperty:function(data)
                                    debugger;
                                    return data;
                                    debugger;
                                    //console.log(bb);
                                
                            
                        /*,
                        listeners: 
                            load: function(store, records, successful, 
                      operation, eOpts)
                                debugger;
                                var data = [];
                                for(var i = 0; i< 1; i++)

                   //data.push(records[i].data.description);
                                    var vare = new Array();
                                    vare[0]= records[i].data.description;
                                    data.push(vare);

                                

                                store.loadData(data);
                                console.log(data);
                            
                        */
            )

但没有工作我如何通过进行服务调用和加载远程数据来实现这一点。

【问题讨论】:

【参考方案1】:

    设置autoLoad: true

    删除 reader 配置对象。由于您使用的是 ArrayStore,因此不需要这样做。并且数组数据是有位置的,所以不使用rootProperty

    检查您是否正确定义了模型字段。

它应该可以工作。

【讨论】:

我的错误实际上存储不应该是 ArrayStore 因为来自服务器的数据是 json 格式: 我把它改成json阅读器并得到它fiddle.sencha.com/#view/editor&fiddle/28ko

以上是关于EasyUI 数据网格行过滤中 通过远程服务器去过滤 参数是如何传递过去的,服务器是如何接收的?的主要内容,如果未能解决你的问题,请参考以下文章

雷林鹏分享:jQuery EasyUI 扩展

如何使用虚拟化远程数据过滤剑道网格上的整个数据源

ExtJs - 基于远程数据的分页和缓冲网格,没有远程分页和过滤

easyui datagrid 怎么重载数据

雷林鹏分享:jQuery EasyUI 数据网格 - 条件设置行背景颜色

雷林鹏分享:jQuery EasyUI 应用 - 创建展开行明细编辑表单的 CRUD 应用