无法对过滤网格面板进行排序(w/fiddle)
cannot sort filtered grid panel (w/fiddle)
我有一个sencha fiddle,可以用来重现我在这里看到的问题:
https://fiddle.sencha.com/小提琴/s2e
我看到的问题是,如果我通过点击Bart, Marge和Homer手动更改'Name'列上的过滤器,然后尝试对我在列节中添加的过滤器进行排序……
columns: [
{
text : 'Name',
dataIndex : 'name',
filter : { type: 'list', value : 'Lisa'}
},
…覆盖我通过UI手动做出的选择。或者换句话说,"如果我单击Bart、Marge和Homer,它们将出现在网格面板中,直到我对行进行排序。"当我对行进行排序时,只显示Lisa。"
这是一个bug还是我做错了什么?
该列排除与value: 'Lisa'
不匹配的值正如@afschr上面所说的-删除值,param将具有此功能。
filter : { type: 'list'}
这可能是一个bug。当然,你可以像Akin说的那样改变你的过滤器。但是,如果您出于某些原因不想更改过滤器,也有一个变通方法。您可以在排序完成后停止排序事件,这样过滤器就不会重置为您设置的默认过滤器( filter: { type: 'list', value : 'Lisa'}
)。
为此,您需要更改主网格面板在视图文件夹中,并添加一个"sortchange"监听器,如下所示:
Ext.define('MVC.view.Master', {
extend : 'Ext.grid.Panel',
xtype : 'mvc-MasterView',
title : 'Master Panel',
store : 'People',
plugins: 'gridfilters',
selModel: {
cellSelect: false,
type: 'spreadsheet'
},
// The code you should add.
listeners: {
sortChange: function() {
this.stopEvent()
}
},
// End of code addition
columns: [
{
text : 'Name',
dataIndex : 'name',
filter : { type: 'list', value : 'Lisa'}
},
{
text : 'Email',
dataIndex : 'email',
flex : 1
},
{
text : 'Phone',
dataIndex : 'phone'
}
]
});
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 使用promise和mongoose对文档进行排序
- Selectize.js:如何对整数值的选项进行排序
- Javascript排序的图像弹出窗口..可以't单独弹出
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 如何通过引用var Using DataTables来进行分页或排序
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- AngularJs对所有页面中的所有记录进行排序
- 当属性不一致时,如何根据属性对JS对象列表进行排序
- 按从高到低对多个int变量进行排序
- jQuery UI可排序-多连接列表拖动
- Javascript排序字符串或数字
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- sort而不是排序javascript
- 通过从节点父级获取所有子级对节点进行排序(获取子级数组)
- 如何合并不同集合的游标并按日期排序
- 为什么我的JavaScript堆栈排序函数不起作用
- ui网格:在自定义表头模板中触发排序
- jquery Onclick函数带有导致双击的回调排序函数
- 无法对过滤网格面板进行排序(w/fiddle)