Rally网格中的重复数据

Rally网格中的重复数据,rally,Rally,运行此脚本以查看所有用户故事和缺陷的组合列表时,我在网格中显示了两组数据(重复)。当我点击过滤器并关闭和打开缺陷时,它会自行解决。知道重复数据来自何处以及如何修复它吗 <!DOCTYPE html> <html> <head> <title>WorkItemList</title> <script type="text/javascript" src="/apps/2.0/sdk.js"></scri

运行此脚本以查看所有用户故事和缺陷的组合列表时,我在网格中显示了两组数据(重复)。当我点击过滤器并关闭和打开缺陷时,它会自行解决。知道重复数据来自何处以及如何修复它吗

<!DOCTYPE html>
<html>
<head>
    <title>WorkItemList</title>

    <script type="text/javascript" src="/apps/2.0/sdk.js"></script>

    <script type="text/javascript">
        Rally.onReady(function () {
                Ext.define('CustomApp', {
  extend: 'Rally.app.App',
  componentCls: 'app',

  launch: function() {
      Ext.create('Rally.data.wsapi.TreeStoreBuilder').build({
          models: ['userstory', 'defect'],
          autoLoad: true,
          enableHierarchy: true
      }).then({
          success: this._onStoreBuilt,
          scope: this
      });
  },

  _onStoreBuilt: function(store) {
      var modelNames = ['userstory', 'defect'];
      var context = this.getContext();
      this.add({
          xtype: 'rallygridboard',
          modelNames: modelNames,
          context: context,
          enableHierarchy: 'true',
          toggleState: 'grid',
          plugins: [
              'rallygridboardaddnew',
              {
                  ptype: 'rallygridboardcustomfiltercontrol',
                  filterControlConfig: {
                      modelNames: modelNames
                  }
              },
              {
                  ptype: 'rallygridboardactionsmenu',
                  menuItems: [
                      {
                          text: 'Export...',
                          handler: function() {
                              window.location = Rally.ui.grid.GridCsvExport.buildCsvExportUrl(
                                  this.down('rallygridboard').getGridOrBoard());
                          },
                          scope: this
                      },
                      {
                          text: 'Print...',
                          handler: function () {
                              Ext.create('Rally.ui.grid.TreeGridPrintDialog', {
                                  grid: this.down('rallygridboard').getGridOrBoard(),
                                  treeGridPrinterConfig: {
                                      largeHeaderText: 'Tasks'
                                  }
                              });
                          },
                          scope: this
                      }
                  ],
                  buttonConfig: {
                      iconCls: 'icon-export'
                  }
              }
          ],
          cardBoardConfig: {
              attribute: 'ScheduleState'
          },
          gridConfig: {
              store: store,
              enableRanking: true,
              defaultSortToRank: true,
              enableBulkEdit: true,
              enableInlineAdd: true,
              showRowActionsColumn: true,
              columnCfgs: [
                'Rank',
                'FormattedID',
                'Name',
                'Release',
                'Iteration',
                'ScheduleState',
                'PlanEstimate',
                'TaskActualTotal',
                'Owner',
                'Tags'
              ]
          },
          height: this.getHeight()
      });
  }
});            


            Rally.launchApp('CustomApp', {
                name:"WorkItemList",
              parentRepos:""
            });

        });
    </script>


</head>
<body>
</body>
</html>

工作项目列表
Rally.onReady(函数(){
Ext.define('CustomApp'{
扩展:“Rally.app.app”,
组件CLS:“应用程序”,
启动:函数(){
Ext.create('Rally.data.wsapi.TreeStoreBuilder').build({
模型:['userstory','defect'],
自动加载:对,
enableHierarchy:true
}).那么({
成功:这是一个成功的故事,
范围:本
});
},
_OnStoreBuild:功能(存储){
var modelNames=['userstory','defect'];
var context=this.getContext();
这个。添加({
xtype:“rallygridboard”,
模型名:模型名,
上下文:上下文,
enableHierarchy:“true”,
toggleState:“网格”,
插件:[
“rallygridboardaddnew”,
{
p类型:“rallygridboardcustomfiltercontrol”,
FilterControl配置:{
模型名:模型名
}
},
{
p类型:“rallygridboardactionsmenu”,
菜单项:[
{
文本:“导出…”,
处理程序:函数(){
window.location=Rally.ui.grid.GridCsvExport.buildCsvExportUrl(
这个.down('rallygridboard').getGridOrBoard());
},
范围:本
},
{
文本:“打印…”,
处理程序:函数(){
Ext.create('Rally.ui.grid.TreeGridPrintDialog'{
grid:this.down('rallygridboard').GetGridBoard(),
treeGridPrinterConfig:{
largeHeaderText:“任务”
}
});
},
范围:本
}
],
按钮图标:{
iconCls:“图标导出”
}
}
],
cardBoardConfig:{
属性:“ScheduleState”
},
gridConfig:{
店:店,,
使能排名:正确,
defaultSortToRank:对,
enableBulkEdit:true,
enableInlineAdd:true,
showRowActionsColumn:对,
专栏CFGS:[
"排名",,
'格式化ID',
“姓名”,
“释放”,
“迭代”,
“计划状态”,
“PlanEstimate”,
“TaskActualTotal”,
“所有者”,
“标签”
]
},
高度:this.getHeight()
});
}
});            
Rally.launchApp('CustomApp'{
名称:“工作项列表”,
家长报告:“
});
});

尝试从您的专栏中省略排名CFG:

           columnCfgs: [
            'FormattedID',
            'Name',
            'Release',
            'Iteration',
            'ScheduleState',
            'PlanEstimate',
            'TaskActualTotal',
            'Owner',
            'Tags'
          ]
      }
默认情况下,
rallygridboard
将包含
Rank
,我认为将其添加为一列会使事情变得混乱。对上述片段的调整似乎对我起到了作用