gpt4 book ai didi

javascript - 将过滤器添加到 Extjs 网格

转载 作者:行者123 更新时间:2023-11-29 16:10:23 25 4
gpt4 key购买 nike

当我单击过滤器按钮(见下文)时,我想将一些过滤器添加到我的网格中。必须使用过滤器面板表单中的给定值将过滤器添加到网格中。

在此页面上,文本字段将被填充,当我单击过滤器按钮时,onFilterClick 处理程序将触发 FilterController。

Ext.define('path.to.filterPanel', {
extend: 'Ext.form.Panel',

xtype: 'filter',
controller: 'dashboard-filter',

viewModel: {
type: 'dashboard-filter'
},

frame: false,
bodyPadding: 10,
layout: 'form',

// the fields
items: [{
xtype: 'textfield',
name: 'firstName',
id: 'firstName',
fieldLabel: 'Firstname'
}, {
xtype: 'textfield',
name: 'lastName',
id: 'lastName',
fieldLabel: 'Lastname'
}],

buttons: [
text : 'Filter',
handler: 'onFilterClick' // trigger to the controller
}]
});

当点击 Filter 按钮时,值将被放入该 Controller 。

Ext.define('path.to.FilterController', {
extend: 'Ext.app.ViewController',
alias: 'controller.dashboard-filter',

onFilterClick: function(button) {

var form = button.up('form').getForm();

if (form.isValid()) {
// form valid

var firstName = Ext.getCmp("firstName").getValue();
var lastName = Ext.getCmp("lastName").getValue();

// check if there is some input
if (!!employeeNumber || !!firstName || !!lastName) {


// add filters but how??


}
} else {
// form not valid
console.log("not valid");
}
}
});

最后,这是必须添加过滤器的网格文件。

Ext.define('path.to.gridPanel, {
extend: 'Ext.grid.Panel',

requires: [
'Ext.grid.column.Action',
'App.store.Employees'
],

controller: 'dashboard-gridVieuw',
xtype: 'gridVieuw',
store: 'Employees',

stateful: true,
collapsible: true,
multiSelect: true,

stateId: 'gridController',

initComponent: function () {
this.store = new App.store.Employees();
var me = this;

me.columns = [{
header : 'Firstname',
flex : 1,
sortable : true,
dataIndex: 'firstName'
}, {
header : 'Lastname',
flex : 1,
sortable : true,
dataIndex: 'lastName'
}]

me.callParent();
}
});

我使用的是 extjs 版本 5。

最佳答案

您可以使用filterBy 方法来过滤与grid 关联的底层store。这是一个例子:

Ext.getStore('myStore').filterBy(function(record, id) {
if (record.get('firstName') === firstName) {
return true;
} else {
return false;
}
});

这是一个fiddle demonstrating a working example of a filter

关于javascript - 将过滤器添加到 Extjs 网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30150832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com