Sorting 如何在ExtJS中禁用对特定行的排序

Sorting 如何在ExtJS中禁用对特定行的排序,sorting,extjs,extjs4.1,Sorting,Extjs,Extjs4.1,我有一个ExtJs网格,我不想对第一行进行排序。如何在ExtJS分类器中忽略这一点 sortchange( ct, column, direction, eOpts ){ console.log(column, ct); }, 我们可以使用sortchangelistener吗 您所能做的就是编写特殊的分类器,使第一行始终位于第一位。可以找到自定义分拣机功能的示例 在您的情况下,可以使用一个特殊的布尔字段“keepOnTop”和分类器: sorterFn: function

我有一个ExtJs网格,我不想对第一行进行排序。如何在ExtJS分类器中忽略这一点

sortchange( ct, column, direction, eOpts ){
      console.log(column, ct);
    },

我们可以使用
sortchange
listener吗

您所能做的就是编写特殊的分类器,使第一行始终位于第一位。可以找到自定义分拣机功能的示例

在您的情况下,可以使用一个特殊的布尔字段“keepOnTop”和分类器:

sorterFn: function(a, b) {
    // Special sorting for first line:
    if(a.get('keepOnTop')) return 1;
    if(b.get('keepOnTop')) return -1;
    // Usual sorting; example with "department" index:
    if(a.get('department') < b.get('department')) return 1;
    if(a.get('department') > b.get('department')) return -1;
    return 0;
},
sorterFn:功能(a、b){
//第一行的特殊排序:
如果(a.get('keepOnTop'))返回1;
if(b.get('keepOnTop'))返回-1;
//常用排序;带有“部门”索引的示例:
如果(a.get('department')b.get('department'))返回-1;
返回0;
},

(请注意,此分拣机只希望有一行将keepOnTop设置为true。)

您所能做的就是编写特殊的分拣机,使第一行始终处于第一位。可以找到自定义分拣机功能的示例

在您的情况下,可以使用一个特殊的布尔字段“keepOnTop”和分类器:

sorterFn: function(a, b) {
    // Special sorting for first line:
    if(a.get('keepOnTop')) return 1;
    if(b.get('keepOnTop')) return -1;
    // Usual sorting; example with "department" index:
    if(a.get('department') < b.get('department')) return 1;
    if(a.get('department') > b.get('department')) return -1;
    return 0;
},
sorterFn:功能(a、b){
//第一行的特殊排序:
如果(a.get('keepOnTop'))返回1;
if(b.get('keepOnTop'))返回-1;
//常用排序;带有“部门”索引的示例:
如果(a.get('department')b.get('department'))返回-1;
返回0;
},
(请注意,此分拣机只希望一条线的keepOnTop设置为true。)

检查此项

这里有一个例子

Ext.create('Ext.grid.Panel'{
标题:《辛普森一家》,
存储:Ext.data.StoreManager.lookup('SimpsonStore'),
栏目:[
{text:'Nombre',dataIndex:'name',sortable:false},
{text:'Email',dataIndex:'Email',sortable:false},
{text:'Phone',dataIndex:'Phone'}
],
身高:200,
宽度:400,
renderTo:Ext.getBody()
});检查此项

这里有一个例子

Ext.create('Ext.grid.Panel'{
标题:《辛普森一家》,
存储:Ext.data.StoreManager.lookup('SimpsonStore'),
栏目:[
{text:'Nombre',dataIndex:'name',sortable:false},
{text:'Email',dataIndex:'Email',sortable:false},
{text:'Phone',dataIndex:'Phone'}
],
身高:200,
宽度:400,
renderTo:Ext.getBody()

});提供了使用sortablehave方法加载数据来禁用排序列的方法

我已经创建了一个小演示来向您展示它是如何工作的


在ExtJs中,文档提供了使用sortablehave方法加载数据来禁用排序列的方法

我已经创建了一个小演示来向您展示它是如何工作的


`var CiGrid=Ext.create('Ext.grid.Panel',{store:mystore,border:false,columns:datastore.columns,`我在我的应用程序中有这样的网格和列,在4.1.3中如何容纳sorterFn?',没有这么多。似乎你必须重写列的功能。如果你能对此进行更多澄清,如何做到这一点。嗨@Alexander,进行排序的逻辑是什么我是否需要为排序时调用的列值编写逻辑?`var CiGrid=Ext.create('Ext.grid.Panel'),{store:mystore,border:false,columns:datastore.columns,`我在我的应用程序中有这样的网格和列,在4.1.3中如何容纳sorterFn?',没有这么多。似乎你必须重写列的功能。如果你能对此进行更多澄清,如何做到这一点。嗨@Alexander,进行排序的逻辑是什么我是否需要为被调用进行排序的列值编写逻辑?