如何为Agile Central自定义网格添加可点击的标准FormattedID格式?
实现Agile Central自定义网格的关联项可点击FormattedID
嘿,你的思路完全没问题!要把Predecessors和Successors的纯文本FormattedID改成带QDP(Quick Detail Popup)和跳转功能的标准样式,核心就是在列配置里用自定义renderer函数来生成符合Rally规范的链接元素,而不是直接返回文本。
具体实现代码
你可以把网格的columnCfgs更新成这样:
var myGrid = Ext.create('Ext.Container', { items: [ { xtype: 'rallygrid', columnCfgs: [ 'FormattedID', 'Name', { text: 'Predecessors', dataIndex: 'Predecessors', renderer: function(value, metaData, record) { // 处理空值情况 if (!value || value.length === 0) { return ''; } // 遍历每个前置项,生成带QDP的链接 return value.map(function(predecessor) { // 用Rally内置的链接类触发QDP和跳转 return `<a href="#/${predecessor._refObjectName}/${predecessor.ObjectID}" class="rally-record-link">${predecessor.FormattedID}</a>`; }).join(', '); } }, { text: 'Successors', dataIndex: 'Successors', renderer: function(value, metaData, record) { if (!value || value.length === 0) { return ''; } return value.map(function(successor) { return `<a href="#/${successor._refObjectName}/${successor.ObjectID}" class="rally-record-link">${successor.FormattedID}</a>`; }).join(', '); } } // 其他列配置... ], storeConfig: { // 必须fetch关联项的必要字段,同时expand加载关联数据 fetch: ['FormattedID', 'Name', 'Predecessors', 'Successors', 'ObjectID', '_refObjectName'], expand: ['Predecessors', 'Successors'] } // 其他网格配置... } ] });
关键细节说明
- renderer函数:这是实现格式转换的核心,它会接收关联项数组,遍历每个项生成带样式的链接。
- rally-record-link类:这是Rally的内置CSS类,自动赋予点击弹出QDP、跳转至对应记录详情页的功能,不用自己写额外的点击事件。
- store配置:必须在
storeConfig里设置expand来展开Predecessors和Successors关联,同时fetch需要包含ObjectID和_refObjectName(记录的类型,比如UserStory、Defect),否则无法生成正确的跳转链接。
这样处理后,你的自定义网格里的前置项和后置项FormattedID就会和Rally原生网格里的样式完全一致,支持点击弹窗查看详情和跳转啦。
内容的提问来源于stack exchange,提问作者Michael Østerberg Jakobsen
相关产品推荐
相关产品推荐

