我正在尝试创建一个项目组合项目报告,该报告使用Rally.ui.grid.Grid获取某些属性信息,并使用Ext.panel.Panel进行描述。因为我希望将此信息与1对1进行匹配,所以我正在通过数据查询进行分页。一切都可以显示我想要的数据格式,但最终调用的数据填充每个网格(第3页填充网格1-3)。这让我想知道商店是否通过引用传递到网格中,我如何更改它,以便它对每个网格都是唯一的。以下是代码段:
_loadScopeDetails: function() {
Ext.create('Rally.data.WsapiDataStore', {
autoLoad: true,
pageSize: 1, // Load 1 page at a time
limit: 1, // Limit to 1
model: 'PortfolioItem/MMF',
context: MyApp.globalContext,
fetch: ['Parent',
'Project',
'Name',
'InvestmentCategory',
'PlannedStartDate',
'PlannedEndDate',
'Description'
],
filters: [
{
property: 'Parent.Name',
operator: 'Contains',
value: MyApp.selectedEpicName
}
],
sorters: {
property: 'Rank',
direction: 'ASC'
},
listeners: {
load: function( store, records ) {
MyApp._buildScopeDetails( store, records );
// Load the next until all pages are loaded
if ( store.currentPage < store.totalCount )
{
store.loadPage( store.currentPage+1 );
}
else
{
var index = 0;
for (index=0; index< store.totalCount; index++ ){
MyApp.scopePane.add(MyApp.scopeDetails[index]);
MyApp.scopePane.add(MyApp.scopeDescription[index] );
}
}
}
}
});
},
_buildScopeDetails: function(myStore, records) {
// Filter off the epic from the scope title
var epicTitle = MyApp.selectedEpicName + ': ';
var title = records[0].data.Name;
if ( 0 === title.indexOf( epicTitle ) ) {
title = title.substr( epicTitle.length );
}
MyApp.scopeDetails.push( Ext.create('Rally.ui.grid.Grid', {
store: myStore, // This seems to be referenced in all grids!?!?!
title: '<a href=\'' + Rally.nav.Manager.getDetailUrl( records[0] ) + '\'>' + title + '</a>',
border: 1,
columnCfgs: [
'Name',
{dataIndex: 'c_SAPProjectNumber', text:'SAP #'},
'InvestmentCategory',
'PlannedStartDate',
'PlannedEndDate',
'Project'
],
showPagingToolbar: false
}) );
MyApp.scopeDescription.push( Ext.create('Ext.panel.Panel', {
width: '100%',
html: '<p>' + records[0].data.Description + '</p>',
renderTo: Ext.getBody()
}) );
},
答案 0 :(得分:2)
我认为正在发生的事情是用于网格的模型正在发生变化。因此,当模型更改时,网格会更新以显示该信息。
要获取一张图表上的所有信息,您可能需要完成以下两项操作之一。