Rally SDK2:在集合网格中对自定义列进行排序
我有一个显示缺陷的拉力网格。我想添加一列,显示缺陷打开的天数 我知道可以通过在configs列中添加自定义渲染器来实现这一点,但我也想在此列上进行排序。遗憾的是,渲染器不会更改列的排序 我想我可能可以在存储区上使用convert()函数来创建一个新的虚拟列(在本例中为openAgeDays),但我不确定如何从构造函数中执行此操作——我想我对storeConfig做了一些更改 有没有人举过如何使用convert函数(假设这是正确的方法)向rally grid添加新的虚拟可排序列的示例Rally SDK2:在集合网格中对自定义列进行排序,rally,Rally,我有一个显示缺陷的拉力网格。我想添加一列,显示缺陷打开的天数 我知道可以通过在configs列中添加自定义渲染器来实现这一点,但我也想在此列上进行排序。遗憾的是,渲染器不会更改列的排序 我想我可能可以在存储区上使用convert()函数来创建一个新的虚拟列(在本例中为openAgeDays),但我不确定如何从构造函数中执行此操作——我想我对storeConfig做了一些更改 有没有人举过如何使用convert函数(假设这是正确的方法)向rally grid添加新的虚拟可排序列的示例
this.grid = this.add({
xtype: 'rallygrid',
model: model,
disableColumnMenus: false,
storeConfig: [...]
正如副本中的答案一样,您可以向列中添加doSort:
{dataIndex: 'Parent', name: 'Parent',
doSort: function(state) {
var ds = this.up('grid').getStore();
var field = this.getSortParam();
console.log('field',field);
ds.sort({
property: field,
direction: state,
sorterFn: function(v1, v2){
console.log('v1',v1);
console.log('v2',v2);
if (v1.raw.Parent) {
v1 = v1.raw.Parent.Name;
} else {
v1 = v1.data.Name;
}
if (v2.raw.Parent) {
v2 = v2.raw.Parent.Name;
} else {
v2 = v2.data.Name;
}
return v1.localeCompare(v2);
}
});
},
renderer: function(value, meta, record) {
var ret = record.raw.Parent;
if (ret) {
return ret.Name;
} else {
meta.tdCls = 'invisible';
return record.data.Name;
}
}
},
正如副本中的答案一样,您可以向列中添加doSort:
{dataIndex: 'Parent', name: 'Parent',
doSort: function(state) {
var ds = this.up('grid').getStore();
var field = this.getSortParam();
console.log('field',field);
ds.sort({
property: field,
direction: state,
sorterFn: function(v1, v2){
console.log('v1',v1);
console.log('v2',v2);
if (v1.raw.Parent) {
v1 = v1.raw.Parent.Name;
} else {
v1 = v1.data.Name;
}
if (v2.raw.Parent) {
v2 = v2.raw.Parent.Name;
} else {
v2 = v2.data.Name;
}
return v1.localeCompare(v2);
}
});
},
renderer: function(value, meta, record) {
var ret = record.raw.Parent;
if (ret) {
return ret.Name;
} else {
meta.tdCls = 'invisible';
return record.data.Name;
}
}
},
可能的重复可能的重复