您好我正在尝试按照分配到的里程碑对US / Defects进行分组。有谁知道这样做的方法? 我可以按所有者或项目进行分组,但可以按里程碑进行分组。
this.add({
xtype: 'rallygrid',
columnCfgs: [
'FormattedID',
'Name',
'State',
'Owner',
'Milestones'
],
context: this.getContext(),
features: [{
ftype: 'groupingsummary',
groupHeaderTpl: '{name} ({rows.length})'
}],
storeConfig: {
models: ['User Story', 'Defect'],
groupField: 'Milestones',
groupDir: 'ASC',
/* filters : [
{
property : 'State',
operator : '!=',
value : 'Closed'
}
],*/
fetch: ['Milestones'],
getGroupString: function(record) {
var Milestones = record.get('Milestones');
return (Milestones && Milestones._refObjectName) || 'No Milestones';
}
}
});

谢谢!
答案 0 :(得分:1)
这是一个棘手的问题。这就是我想出的:
this.add({
xtype: 'rallygrid',
columnCfgs: [
'FormattedID',
'Name',
'State',
'Owner',
'Milestones'
],
context: this.getContext(),
features: [{
ftype: 'groupingsummary',
groupHeaderTpl: '{name} ({rows.length})'
}],
storeConfig: {
model: 'userstory',
groupField: 'Milestones',
listeners: {
beforeload: function(store) {
//remove the Milestones sorter, since Milestones
//is not a sortable field
var sorter = store.sorters.first();
if (sorter && sorter.property === store.groupField) {
store.sorters.remove(sorter);
}
}
},
getGroupString: function(record) {
var milestones = record.get('Milestones');
//grab the Name field from each object in the _tagsNameArray
return _.pluck(milestones._tagsNameArray, 'Name').join(',') || 'None';
}
}
});
与您的代码有两个主要区别。第一个是storeConfig中的beforeload处理程序。存储的默认行为是将groupField添加到分拣机数组中。这通常是我们想要的,但在这种情况下,里程碑不是WSAPI中的可排序字段,因此请求失败。所以我们只是删除那个分拣机。
第二个更改是在getGroupString函数中。里程碑是一个集合,因此您不能像对象或父对象一样直接使用_refObjectName。
希望有所帮助!