微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何添加过滤器并正确过滤数据?

如何解决如何添加过滤器并正确过滤数据?

我有窗口 ExtJS:

let height = Ext.getBody().getViewSize().height,width = Ext.getBody().getViewSize().width,store = Ext.create('CRM.store.MessageCenter.Messages.List');

Ext.define('CRM.window.MessageCenter.Messages.List',{
    extend: 'Ext.window.Window',xtype: 'window',name: 'MessageCenter_Messages_List_Window',iconCls: 'mails',title: 'MessageCenter_Messages',width: width,height: height - 26,x: 0,y: 26,layout: 'fit',dockedItems: [{
        xtype: 'pagingtoolbar',dock: 'bottom',displayInfo: true,extend: 'Ext.PagingToolbar',displayMsg: 'Shown {0} - {1} from {2}',emptyMsg: "There is no data to display",}],initComponent: function() {
        var that = this;
        that.store = store;
        that.dockedItems[0].store = store;
        this.callParent();
    },items: [{
        xtype: 'grid',name: 'MessageCenter_Messages_List_Grid',border: false,store: store,columns: [
            {
                text: 'ID',dataIndex: 'id',width: 100,hidden: false
            },{
                text: 'Date of creation',dataIndex: 'date',width: 150,xtype: 'datecolumn',format: 'd.m.Y H:i:s',],});

我的商店:

let name = 'CRM.store.MessageCenter.Messages.List';
Ext.define(name,{
    extend: 'Ext.data.Store',autoLoad: true,pageSize: 35,fields: [
        'id','date',sorters: [{
        property: 'date',direction: 'DESC',proxy: {***},});

我需要添加过滤器以从数据库中选择数据。例如,按日期或 ID,但我不知道如何正确执行。以及是否有必要在我的情况下使用数据模型。请告诉我,我刚开始学习 ExtJS,谢谢你的帮助。

解决方法

没有必要使用数据模型(但它会很好)。 要使用用户定义的过滤器,您可以使用此 plugin。 AFAIK 您需要远程过滤器,因此将商店的“remoteFilter”属性设置为 true。类似于以下示例:

Ext.create('Ext.grid.Panel',{
    renderTo: Ext.getBody(),title: 'Sci-Fi Television',height: 250,store: Ext.create('Ext.data.Store',{
        fields: ['id','show'],model: 'User',proxy: {
            type: 'ajax',url: 'data1.json',reader: {
                type: 'json',rootProperty: 'items'
            }
        },autoLoad: true,remoteFilter: true,// Server side filtering.
    }),plugins: 'gridfilters',columns: [{
        dataIndex: 'id',text: 'ID',width: 50
    },{
        dataIndex: 'show',text: 'Show',flex: 1,filter: {
            // required configs
            type: 'string',// optional configs
            value: 'star',// setting a value makes the filter active.
            itemDefaults: {
                // any Ext.form.field.Text configs accepted
            }
        }
    }]
});

此示例将发送以下过滤器属性:

[{"operator":"like","value":"starrr","property":"show"}]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?